js匿名函数运行的方法
Javascript中定义函数的方式有多种,函数直接量就是其中一种。如var fun = function(){},这里function如果不赋值给fun那么它就是一个匿名函数。好,看看匿名函数的如何被调用。
方式1,调用函数,得到返回值。强制运算符使函数调用执行
|
1
2
3
4
|
(function(x,y){ alert(x+y); return x+y;}(3,4)); |
方式2,调用函数,得到返回值。强制函数直接量执行再返回一个引用,引用再去调用执行
|
1
2
3
4
|
(function(x,y){ alert(x+y); return x+y;})(3,4); |
这种方式也是很多库爱用的调用方式,如jQuery,Mootools。
方式3,使用void
|
1
2
3
4
|
void function(x) { x = x-1; alert(x);}(9); |
方式4,使用-/+运算符
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
-function(x,y){ alert(x+y); return x+y;}(3,4);+function(x,y){ alert(x+y); return x+y;}(3,4);--function(x,y){ alert(x+y); return x+y;}(3,4);++function(x,y){ alert(x+y); return x+y;}(3,4); |
方式5,使用波浪符(~)
|
1
2
3
4
|
~function(x, y) { alert(x+y); return x+y;}(3, 4); |
方式6,匿名函数执行放在中括号内
|
1
2
3
|
[function(){ console.log(this) // 浏览器得控制台输出window}(this)] |
方式7,匿名函数前加typeof
|
1
2
3
|
typeof function(){ console.log(this) // 浏览器得控制台输出window}(this) |
方式8,匿名函数前加delete
|
1
2
3
|
delete function(){ console.log(this) // 浏览器得控制台输出window}(this) |
方式9,匿名函数前加void
|
1
2
3
|
void function(){ console.log(this) // 浏览器得控制台输出window}(this) |
方式10,使用new方式,传参
|
1
2
3
|
new function(win){ console.log(win) // window}(this) |
方式11,使用new,不传参
|
1
2
3
|
new function(){ console.log(this) // 这里的this就不是window了} |
方式12,逗号运算符
|
1
2
3
|
1, function(){ console.log(this) // window}(); |
方式13,按位异或运算符
|
1
2
3
|
1^function(){ console.log(this) // window}(); |
方式14,比较运算符
|
1
2
3
|
1>function(){ console.log(this) // window}(); |
最后看看错误的调用方式
|
1
2
3
4
|
function(x,y){ alert(x+y); return x+y;}(3,4); |
js匿名函数运行的方法的更多相关文章
- JS匿名函数的理解
js匿名函数的代码如下:(function(){ // 这里忽略jQuery 所有实现 })(); 半年前初次接触jQuery 的时候,我也像其他人一样很兴奋地想看看源码是什么样的.然而,在看到源码的 ...
- js匿名函数和闭包总结
js匿名函数和闭包总结 一.总结 一句话总结:匿名函数的最主要作用是创建闭包,闭包就是将函数内部和函数外部连接起来的一座桥梁.内层的函数可以使用外层函数的所有变量,即使外层函数已经执行完毕.闭包可以用 ...
- js匿名函数(变量加括号就是函数)
js匿名函数(变量加括号就是函数) 一.总结 变量加括号就是函数,而函数的括号是用来传参的 1.类比:以正常函数去想匿名函数,匿名函数比正常函数只是少了函数名,本质还是一样,该怎么传参还是怎么传参,小 ...
- js匿名函数确实是个好东西
<body onload="alert('http://www.baidu.com/');"> <script type="text/javascrip ...
- JS匿名函数自执行函数
JS匿名函数自执行函数:(function(){})();(function(){}) 这是一个函数,函数后面接(),则是调用函数 比如(function(arg){console.log(arg); ...
- js匿名函数自执行的好处
我们知道,在创建一个函数时如果要用到变量来存取信息的话,要尽量使用局部变量. 因为一方面局部变量会随着函数的执行结束被销毁:另一方面在不执行函数的时候也不会创建这个局部变量,对节省空间资源有很大的好处 ...
- js匿名函数测试
js匿名函数测试 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> < ...
- js 匿名函数 js-函数定义方法
1.任何函数都是有返回值的,没有返回值的,在某些语言里称之为过程例如PL/SQL 2.js中的函数如果没有return 关键字指明给出的返回值,那么当调用完函数后,会返回“undefined" ...
- js 匿名函数-立即调用的函数表达式
先提个问题, 单独写匿名函数为什么报错?return 匿名函数 为什么不报错? 如图: 第二种情况在 f 还没有执行的时候,就报错了,,,当然这得归因于函数声明语句声明提前(发生在代码执行之前)的原因 ...
随机推荐
- .net iis6中配置伪静态
1.右键点击 要设置网站的网站 2.属性 ——>主目录 ——>配置——> 3.如右侧窗口,找到 .aspx 扩展名——>编辑——>复制 可执行文件的路径——>关闭 ...
- webpack打包将配置文件单独抽离不压缩打包
webpack.config.js: plugins: [ //提取公共模块 new webpack.optimize.CommonsChunkPlugin({ name: 'vendors', ch ...
- Java方法命名之“由简入繁”原则
1.访问控制层(Controller 层)中的方法命名方向是简洁明了,向着自然化语言方向靠拢,比如“更新用户”,建议命名为“updateUser”,而非“updateUserById”,实际上我们更新 ...
- HTML中6种空白空格
HTML提供了5种空格实体(space entity),它们拥有不同的宽度,非断行空格( )是常规空格的宽度,可运行于所有主流浏览器.其他几种空格( )在不同浏览器中宽度各异. ...
- Java Knowledge series 4
JVM & Bytecode Has-a or Is-a relationship(inheritance or composition) 如果想利用新类内部一个现有类的特性,而不想使用它的接 ...
- java学习笔记之基础知识
1.class不加修饰符默认default,只在当前包里能用. 2.构造函数前面的修饰符的作用类似class的,限制引用的权限. 3.java对象的创建其实就是类的实例化,类的实例化就是在堆上copy ...
- Linux CentOS下部署Java Web项目
本文讲解如何在Linux CentOS下部署Java Web项目的步骤. 一.环境准备: (1)Linux CentOS (2)apache-tomcat-9.0.10 (3)XShell 二.启动t ...
- sql注入【手工及一些工具】
Sql注入原理分析: 网站程序存在可控传递参数,参数未进行过滤直接带入数据库查询,导致攻击者可通过传递恶意sql语句代码进行执行攻击. Sql注入产生条件 1.必须有参数传递 2.参数值带入数据库查询 ...
- K星异客
http://baike.baidu.com/view/222058.htm 这部改编自基恩·布汝尔1995年出版的同名小说的电影在当年的十月档票房榜上称冠.本来这部电影的外星人主人公属意于威尔.史密 ...
- Bucking the stigma (留学生请摘掉有色眼镜看社区大学)
Many Chinese students second-guess the benefits of attending a US community college. 很多中国学生对去美国社区大学学 ...