Tengo un problema que todavía me molesta en js oop - Estoy seguro de que lo estoy haciendo mal, pero no puedo entender cómo hacerlo bien.Javascript OOP - perdido esto en la devolución de llamada asincrónica
Por ejemplo, tengo este código
Auth.prototype.auth = function() {
var request = new XMLHttpRequest();
request.open('GET', this.getAuthServerURL() + '/token', true);
request.send();
request.onloadend = function() {
var response = JSON.parse(request.responseText);
console.log(response);
if(response.result == 'found') {
var token = response.token;
this.setToken(token);
this.isSigned = true;
} else {
console.log('Not logged yet.');
}
}
}
El problema es que no puedo acceder a la función setToken a partir del contexto de la función "request.onloadend" - es probablemente porque he perdido la referencia a "este".
¿Cuál es la solución a este problema? ¿De alguna manera puedo pasar el "este" var al contexto de esta función?
Gracias!
Creo que el otro es más directo, el código se modifica mínimamente y no es necesario que decida qué palabra clave pseudo utilizar. Solo digo. – Esailija
@Esailija: Yo también, pero lamentablemente su valor práctico se ve limitado por la compatibilidad del navegador. – Jon
Punto discutible con 'XHR.onloaded' – Esailija