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!

Antworten auf die Frage(6)

Ihre Antwort auf die Frage