在下面的結構:IIFE語境問題
(function(){
var x = function(){
alert('hi!');
}
var y = function(){
alert("hi again!");
}
this.show = function(){
alert("This is show function!");
}
})();
爲什麼this
指window
對象? IIFE內的所有內容應該與全球範圍隔離嗎? x
和y
函數還有window
全局對象的屬性?
而且,即使我用把var h = ...
開頭:
var h = (function(){
var x = function(){
alert('hi!');
}
var y = function(){
alert("hi again!");
}
this.show = function(){
alert("This is show function!");
}
})();
this
仍然指向window對象 - 我可以叫show()
從全球範圍內!怎麼來的?
一個有效的情況是,當你需要將IIFE中的「this」傳遞給另一個使用它進行回調的對象時。 – AndroidDev