Ok, quindi ho pensato di aver capito questo (nessun gioco di parole previsto), ma apparentemente no.questa parola chiave è oggetto finestra all'interno di una funzione di costruzione
var Constructor = function() {
var internalFunction = function() {
return this === window;
};
this.myMethod = function() {
alert(internalFunction());
};
};
var myObj = new Constructor();
myObj.myMethod();
Questo avviso true
. Perché la funzione interna non può vedere this
come oggetto? Invece devo usare alert(internalFunction.call(this));
in myMethod
.
Edit: ero alla ricerca di una spiegazione sul motivo per cui this
viene assegnato in quel modo, non soluzioni alternative come ad esempio var self = this;
, ecc Scusate se non ho fatto chiaro.
Nessuna delle risposte a questa domanda usare 'that'. Mi sento tradito. – hugomg
@missingno: non mi piace "quello". Non è descrittivo. Detto questo, la mia scelta nella mia risposta non è migliore :) –
+1 per gioco non intenzionale – SMC