これは私が答えを知っておくべきだと確信していますが、私はただばかであるか、私はちょっと前にこれを見つけていません...配列内の関数のコンテキストとは何ですか?
次の配列が与えられているとします。グローバルスコープ:
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があります。
'これは所有者を指しているので、所有者は実行時に参照されると思います。 http://www.quirksmode.org/js/this.html – Silvermind