【发布时间】:2010-09-30 05:01:11
【问题描述】:
可能重复:
Are “(function ( ) { } ) ( )” and “(function ( ) { } ( ) )” functionally equal in JavaScript?
这是我还没有完全弄清楚的事情,但我一直在使用 function(){}() 只是因为如果我添加括号,我的 VIM 语法高亮就会搞砸,尽管我已经看到 (function() {})() 很多次,可能是 IE 的问题?
编辑:
var singleton = function() {
// code
}();
var singleton = (function() {
// code
})();
【问题讨论】:
-
你能提供更多的上下文吗?
-
为什么 VIM 不能处理括号?如果它无法处理这种情况,我很惊讶有这么多人使用它。
-
是的,括号之间的整个代码块都禁用了 Javascript 语法高亮显示。
-
在上面显示的示例中,没有区别,因为解析器期待 = 之后的表达式。当您不分配输出时,您需要使用括号来消除函数语句与函数表达式的歧义。括号将解析器放入表达式上下文中。
标签: javascript syntax