Javascript ООП - потерял это в асинхронном обратном вызове

У меня есть проблема, которая до сих пор беспокоит меня - я уверен, что я делаю это плохо, но я не могу понять, как это сделать правильно.

Например, у меня есть этот код

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

Проблема в том, что я не могу получить доступ к функции setToken из контекста «request.onloadend» Функция - вероятно, потому что я потерял ссылку на "это".

Какое решение этой проблемы? Могу ли я как-нибудь передать «это» вар к контексту этой функции?

Спасибо!

Ответы на вопрос(6)

Ваш ответ на вопрос