To jest coś, że jestem pewien, że powinienem znać odpowiedź, ale albo jestem po prostu głupi albo ja po prostu jakoś nigdy nie natknąć to wcześniej ...Jaki jest kontekst funkcji w tablicy?
Biorąc pod uwagę następujące tablicę, ogłoszony w zakres globalny:
var arr = [function() {
console.dir(this);
}];
Liczyłam this
odnieść się do obiektu window. Jednak przy wywołaniu funkcji:
arr[0](); //Logs Array
Wydaje się, że this
rzeczywiście odnosi się do tablicy. Potem, kiedy przechowywać odwołanie do funkcji w innej zmiennej i nazwać, this
robi odnoszą się do obiektu window:
var func = arr[0];
func(); //Logs Window
Więc dlaczego kontekst zmian funkcji? Oto fiddle demonstrating the above two cases.
"Ten" odnosi się do właściciela, więc domyślam się, że właściciel jest podnoszony w czasie wykonywania. http://www.quirksmode.org/js/this.html – Silvermind