JS中的自执行的匿名函数有一个更标准的名字“立即执行表达式”,常用到的格式为:
(function(){
//代码
})();
最后一对()里写函数参数。
Javascript中明确规定不能以function开头,所以:
function(){
//代码
}()
这种写法是错误的。这种写法期望是立即调用一个匿名函数表达式,结果是进行了函数声明,但函数声明必须要有标识符做为函数名称。
那些匿名函数附近使用括号或一些一元运算符的惯用法,就是来引导解析器,指明运算符附近是一个表达式。按照这种理解,可以写出五类、超过十几种的让匿名函数表达式立即调用的写法:
( function() {}() );
( function() {} )();
[ function() {}() ];
~ function() {}();
! function() {}();
+ function() {}();
- function() {}();
delete function() {}();
typeof function() {}();
void function() {}();
new function() {}();
new function() {};
var f = function() {}();
1, function() {}();
1 ^ function() {}();
1 > function() {}();