当我看到JavaScript中自执行匿名函数的示例时,感到困惑,例如:
(function () { return val;}) ();
这种语法和以下语法有什么区别:
function() { return val;} ();
如果有人能给我一个明确的区别,那将有助于解决一直困扰我许久的问题...
当我看到JavaScript中自执行匿名函数的示例时,感到困惑,例如:
(function () { return val;}) ();
这种语法和以下语法有什么区别:
function() { return val;} ();
如果有人能给我一个明确的区别,那将有助于解决一直困扰我许久的问题...
function() { alert("Test"); }();
但是下面的代码可以正常工作:
(function() { alert("Test"); })();
更新:我也在火狐浏览器3中(通过Firebug)尝试了这段代码,它的行为与Safari完全一样。
function() { return val;} ();
function
开头,它就像一个C函数声明一样,你不能调用该函数,因为没有表达式值。var value = function() { alert("works"); return 0; }();
(function() { alert("works"); })();
function() { alert("doesn't work"); }();
我总是包含括号,即使它们不是必需的,因为这样更容易看出我正在调用函数,而不是将其赋值给变量。