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!

questionAnswers(6)

yourAnswerToTheQuestion