在立即调用的函数表达式(如
)之间是否存在差异(function () {
angular.module("realestateApp", []);
}());
和像
这样的普通函数调用angular.module("realestateApp", []);
还是等同?
答案 0 :(得分:4)
不在这个例子中没有......
如果你创建一个变量(或一个函数或一个对象),它可能会在全局命名空间中结束。
(function(){
var x = 'foo';
})();
将污染全局命名空间,同时:
xcell.style = xcell.style.copy(**style_kwargs)
赢得'吨
答案 1 :(得分:2)
在这种情况下没有区别,但通常如果在代码中创建一些函数或变量,IIFE会为您提供全局命名空间的封装。
IIFE通常用于创建模块:
http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html