1.关于匿名函数的申请与执行
(function(){ alert(1); } ) ( );
( function(){ alert(2); } ( ) );
void function(){ alert(3); }()
2.一些奇怪的写法
(function a(){alert(1)},function b(){alert(2)})(); b();
第一句执行返回 2
第二句b()会报错:b未定义
var a = function b (){alert(1)}; a(); //1 b(); //报错:b未定义
正确的写法是
function b (){alert(1)} var a = b; a(); //1 b(); //1
( function(){ alert(2); } ( ) ); //正确 function(){alert(2);} ( ) ; //错误
var b; function(a){alert(2);}(b); //不报错,但是函数未执行 var a = function(){}(); //不报错 function(a){alert(2);}(); //报错
具体解释可参考:http://snandy.iteye.com/blog/667861