Javascript OOP - hat dies im asynchronen Rückruf verloren
Ich habe ein Problem, das mich immer noch stört - ich bin sicher, dass ich es schlecht mache, aber ich kann nicht verstehen, wie ich es richtig mache.
Zum Beispiel habe ich diesen Code
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.');
}
}
}
Das Problem ist, dass ich aus dem Kontext der Funktion "request.onloadend" nicht auf die Funktion setToken zugreifen kann - wahrscheinlich, weil ich den Verweis auf "this" verloren habe.
Was ist eine Lösung für dieses Problem? Kann ich die Variable "this" irgendwie an den Kontext dieser Funktion übergeben?
Vielen Dank!