Javascript OOP - perdido esto en devolución de llamada asincrónica
Tengo un problema que todavía me molesta en js oop: estoy seguro de que lo estoy haciendo mal, pero no puedo saber cómo hacerlo bien.
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 desde el contexto de la función "request.onloadend", probablemente porque perdí la referencia a "this".
¿Cuál es una solución de este problema? ¿Puedo pasar de alguna manera la variante "this" al contexto de esta función?
¡Gracias!