Fondamentalmente ho un oggetto, esteso con una funzione attraverso il suo prototipo. All'interno di questa funzione esiste un'altra funzione, tuttavia quando si utilizza this
in questa funzione annidata, non sembra riferirsi all'oggetto, ma alla funzione.'questo' in funzione all'interno della funzione prototipo
Ad esempio,
var sampleObject = function() {
this.foo = 123;
}
sampleObject.prototype.getFoo = function() {
var nested = function() {
return this.foo;
}
return nested();
}
var test = new sampleObject();
window.alert(test.getFoo()); // undefined
Il this.foo
non si riferisce al valore 123, ma non è definito come questo si riferisce alla funzione nidificata, in cui non esiste foo
. Come posso accedere al valore 123 dalla funzione annidata?
Grazie.
possibile duplicato di [In Javascript, perché l'operatore "questo" è incoerente?] (Http://stackoverflow.com/questions/80084/in-javascript-why-is-the-this-operator-inconsistent –