Javascript OOP - perdeu isso em callback assíncrono

Eu tenho um problema que ainda me incomoda em js oop - tenho certeza que estou fazendo mal, mas eu não consigo como fazer isso direito.

Por exemplo, eu tenho esse código

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.');
      }
    }
}

O problema é que eu não consigo acessar a função setToken do contexto da função "request.onloadend" - provavelmente porque perdi a referência a "this".

Qual é a solução deste problema? Posso de alguma forma passar o "this" var ao contexto dessa função?

Obrigado!

questionAnswers(6)

yourAnswerToTheQuestion