匿名函数又叫立即执行函数。
因为是匿名的,所以不能被调用。
因为不能被调用,所以不立即执行的话就没意义了。
因为立即执行,所以在执行完之后就会被销毁。
第一种(常用)
( function(){…} )()
第二种(常用)
( function(){…}() )
第三种(不常用)
~function(){…}()
前两种写法,返回值都是正常的。
第三种写法的返回值会比较奇怪,所以很少用。
第一种写法
在控制台输出 1
第二种写法
在控制台输出 2
第三种写法
在控制台输出 -4
在控制台输出2
假设第三种写法的返回值是未知数 x。
则得到的返回值是:-(x + 1)
/* 第一种,赋值给变量然后通过变量调用 */var fun = function(){
}
fun() //调用
/* 第二种就是立即执行,就是在匿名函数后边添加一个括号 */
(function(){
}())//结构一
function(){
}()//结构二
var fun2 = function(){
}()//结构三
方法一适合在任意位置调用,方法二适用于闭包