我看到很多代碼,如:立即調用的函數表達式(IIFE)與未
var myApp ={};
(function() {
console.log("Hello");
this.var1 = "mark"; //"this" is global, because it runs immediately on load. Caller is global
myApp.sayGoodbye = function() {
console.log("Goodbye");
};
})();
導致匿名函數立即執行。但是,與僅將內聯代碼相比,這有什麼優勢?
var myApp ={};
console.log("Hello");
var1 = "mark";
myApp.sayGoodbye = function() {
console.log("Goodbye");
};
顯然,這是一個與功能的範圍內做的,但作爲函數是匿名的,並呼籲通過窗口,它的範圍(即this
)是全球性的,不是嗎?
在第二個片段中,var1附加到窗口範圍,第一個不是。 – mpm
但是當我用Chrome瀏覽示例1時,'var1'是全局的。 – Mark
這個結構的原因不在我們看到的代碼中。或者它完全沒用。請向我們展示更多代碼。 –