JavaScript OOP - utracono to w asynchronicznym wywołaniu zwrotnym
Mam problem, który wciąż niepokoi mnie na js oop - jestem pewien, że robię to źle, ale nie mogę się dowiedzieć, jak to zrobić poprawnie.
Na przykład mam ten kod
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.');
}
}
}
Problem polega na tym, że nie mogę uzyskać dostępu do funkcji setToken z kontekstu funkcji „request.onloadend” - prawdopodobnie dlatego, że straciłem odniesienie do „this”.
Co jest rozwiązaniem tego problemu? Czy mogę jakoś przekazać „ten” var do kontekstu tej funkcji?
Dzięki!