有沒有像立即調用的函數表達式和相應的純函數調用之間是否存在差異?
(function() {
angular.module("realestateApp", []);
}());
和一個普通的函數調用等
angular.module("realestateApp", []);
或者他們等效bteween一個立即調用函數表達式的差?
有沒有像立即調用的函數表達式和相應的純函數調用之間是否存在差異?
(function() {
angular.module("realestateApp", []);
}());
和一個普通的函數調用等
angular.module("realestateApp", []);
或者他們等效bteween一個立即調用函數表達式的差?
本例中沒有沒有...
有可能是,如果你創建一個變量(或函數或對象),將在全局命名空間中結束。
var x = 'foo';
會污染全局命名空間,而:
(function(){
var x = 'foo';
})();
不會。
在這種情況下,它沒有區別,但通常如果您在代碼中創建了一些函數或變量,IIFE將爲您提供封裝形式的全局名稱空間。
IIFE經常使用它來創建模塊:
http://www.adequatelygood.com/JavaScript-Module-Pattern-In-Depth.html