Ich habe Probleme, die mich immer noch stört auf js oop - Ich bin mir sicher, ich mache es schlecht, aber ich kann nicht, wie es richtig geht.Javascript OOP - verloren in asynchronen Rückruf
Zum Beispiel, ich habe 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 Zugang kippe setToken aus dem Kontext von „request.onloadend“ -Funktion funktioniert - es ist wahrscheinlich, weil ich Bezug verloren „dieses“.
Was ist eine Lösung für dieses Problem? Kann ich die "This" Var irgendwie an den Kontext dieser Funktion übergeben?
Danke!
Ich denke, das andere ist direkter, der Code ist minimal geändert und Sie müssen nicht entscheiden, welches Pseudo-Schlüsselwort zu verwenden. Sag es einfach. – Esailija
@Esailija: Ich auch, aber leider ist der praktische Nutzen durch die Browserkompatibilität eingeschränkt. – Jon
Moot Punkt mit 'XHR.onloaded' – Esailija