Difference between (function(){})(); and function(){}();
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Are “(function ( ) { } ) ( )” and “(function ( ) { } ( ) )” functionally equal in JavaScript?
这是我还没有想到的东西,但是我一直在使用function(){}(),因为我添加了括号后我的VIM语法突出显示,虽然我已经看过(function(){}) ()很多次,也许它是一个IE的东西?
编辑:
1 2 3 4 5 6 7 | var singleton = function() { // code }(); var singleton = (function() { // code })(); |
Peter Michaux讨论了一对重要的Parens的区别。
基本上,括号是一种约定,表示紧接着调用的函数表达式,而不是普通函数。 特别是如果功能体很长,这会减少意外,
额外的括号集使您更清楚地构建函数然后调用它。 这是一种编码风格的东西,而不是功能性的东西。
1 | function(){}(); |
在大多数浏览器中不起作用。 您应该在函数周围使用括号来执行它
1 | (function(){})(); |
然后浏览器会知道最后一个括号应该应用于所有表达式
1 | function(){} |
UPD:如果你不使用括号,浏览器可能会误解你。 如果您只是调用该函数并取消结果
1 2 3 | function() { alert(1); }(); |
那么ff和ie会抛出错误