Javascript OOP - perdeu isso em callback assíncrono
Eu tenho um problema que ainda me incomoda em js oop - tenho certeza que estou fazendo mal, mas eu não consigo como fazer isso direito.
Por exemplo, eu tenho esse 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.');
}
}
}
O problema é que eu não consigo acessar a função setToken do contexto da função "request.onloadend" - provavelmente porque perdi a referência a "this".
Qual é a solução deste problema? Posso de alguma forma passar o "this" var ao contexto dessa função?
Obrigado!