Ho visto questo fatto molto in JavaScript e ricordo di aver scoperto perché, ma non riesco a ricordare la risposta.Perché dovresti creare una variabile con valore questo
Sto indovinando è qualcosa a che fare con il campo di applicazione e una funzione di essere chiamato fuori dalla "classe", ma perché uno dovrebbe fare questo (preferibilmente che delinea un esempio):
function myClass()
{
var self = this;
//...
this.myArray = [];
this.myFunc = function() { alert(self.myArray.length); };
}
Così, nel mio esempio (ora aggiornato), avrei ancora bisogno del 'self' prima di accedere' myArray 'in funzione' myFunc'? – Cheetah
Questo esempio specifico non è molto buono, 'forEach' prende un secondo argomento che sarà associato a' this' all'interno del callback, che dovrebbe essere preferito rispetto alla creazione della variabile "self" "hacky". – Esailija
@Ben Dipende da come viene invocato il metodo. Ad esempio: 'var o = {f: function() {return this}}; o.f() == o;/* true */var f2 = o.f; f2() == finestra;/* true */' – Phrogz