【发布时间】:2011-03-24 00:09:38
【问题描述】:
我最近将json2.js 的当前版本与我项目中的版本进行比较,发现函数表达式的创建和自我执行方式有所不同。
用于将匿名函数包装在括号中然后执行的代码,
(function () {
// code here
})();
但现在它将自动执行的函数包装在括号中。
(function () {
// code here
}());
CMS 在Explain JavaScript’s encapsulated anonymous function syntax 接受的答案中有一条评论说“(function(){})(); 和(function(){}()); 都是有效的。”
我想知道有什么区别?前者是否通过离开全局匿名函数来占用内存?括号应该放在哪里?
【问题讨论】:
-
相关:Immediate function invocation syntax(在 JSLint 中)
-
另请阅读purpose of this construct,或查看(technical)explanation(也可查看here)。为什么需要括号,请参阅this question。
标签: javascript syntax anonymous-function iife