função 'this' dentro da função prototype [duplicado]
Esta pergunta já tem uma resposta aqui:
Como acessar o `this` correto dentro de um retorno de chamada? 10 respostasBasicamente, tenho um objeto, estendido com uma função através de seu protótipo. Dentro dessa função, existe outra função, no entanto, ao usarthis
nessa função aninhada, ela não parece se referir ao objeto, mas à função.
Por exemplo,
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
othis.foo
não se refere ao valor 123, mas é indefinido, pois se refere à função aninhada, na qual nenhumfoo
existe. Como posso acessar o valor 123 da função aninhada?