可能重复:
Why this kind of function invocation is wrong in JavaScript?
Is there any reason to wrap anonymous JavaScript functions in braces?
是否有一个很好的解释,为什么我必须将一个匿名函数封装在括号中,然后才能调用它,如:
(function() { alert('foo'); })();
而不是仅仅
function() { alert('foo'); }();
在其他语言中,函数只是您可以传递的东西,例如Clojure。在Clojure中,函数调用如下所示:(函数args),例如:(+ 12)。您可以在通常使用命名函数的任何地方替换匿名函数:((fn,a b) 12)。在Javascript中,情况似乎并非如此。
发布于 2011-12-20 23:10:10
因为如果没有函数的括号,代码就是一个糟糕的函数声明,将()
添加到它的末尾是语法错误。
但是,在函数周围加上括号,您将得到一个指向匿名函数的函数指针,该函数可以通过将()
添加到函数的末尾来执行。
https://stackoverflow.com/questions/8583145
复制相似问题