這是我確信我應該知道的答案,但無論我只是愚蠢的,或者我只是以前從來沒有遇到過這個...數組中的函數的上下文是什麼?
鑑於以下數組,聲明在全球範圍內:
var arr = [function() {
console.dir(this);
}];
我本來期望this
指的Window對象。然而,在調用函數時:
arr[0](); //Logs Array
看來,this
實際上指的是陣列。然後,當我存儲函數的引用在另一個變量和調用,this
確實指的是Window對象:
var func = arr[0];
func(); //Logs Window
那麼,爲什麼功能變化的背景下?這是一個fiddle demonstrating the above two cases。
'this'指的是車主,所以我猜車主在執行時會擡頭。 http://www.quirksmode.org/js/this.html – Silvermind 2012-04-04 10:03:22