Widziałem to zrobić dużo w JavaScript i pamiętam, aby dowiedzieć się, dlaczego, ale nie pamiętam odpowiedzi.Dlaczego warto utworzyć zmienną o wartości to
Zgaduję, że to ma coś wspólnego z zakresem i funkcji nazywany poza „klasą”, ale dlaczego należałoby to zrobić (najlepiej przedstawiający przykładowe):
function myClass()
{
var self = this;
//...
this.myArray = [];
this.myFunc = function() { alert(self.myArray.length); };
}
więc moim przykładzie (zaktualizowany), chciałbym nadal potrzebują 'self' przed uzyskaniem dostępu do' myArray 'w funkcji' myFunc'? – Cheetah
Ten konkretny przykład nie jest zbyt dobry, "forEach" przyjmuje drugi argument, który będzie związany z 'tym' wewnątrz wywołania zwrotnego, co powinno być preferowane w stosunku do tworzenia "hacky" zmiennej 'self'. – Esailija
@Ben To zależy od sposobu wywołania metody. Na przykład: 'var o = {f: function() {return this}}; o.f() == o;/* true */var f2 = o.f; f2() == okno;/* true */' – Phrogz