привязка данных класса к классу XMLHttpRequest без удаления данных xhr

#javascript #ajax

#javascript #ajax

Вопрос:

я использую XMLHttpRequest внутри класса:

 xhr.onreadystatechange = function() {
    if (this.readyState == 4 amp;amp; this.status == 200) {
        let data = JSON.parse(this.responseText);
        this.checkData(data);
    }
    else{
        console.log(this);
    }
}.bind(this);
 

если я использую bind(this) в конце, я потеряю доступ this к for xhr , и если я его удалю, я потеряю доступ this к своему классу, что мне делать?

Комментарии:

1. Используйте выборку

2. поэтому используйте xhr.readyState…. xhr.status….

Ответ №1:

У вас есть два варианта….

Вы либо сохраняете это в переменной снаружи и используете ее внутри, либо не используете bind.

 var _this = this;
xhr.onreadystatechange = function() {
    if (this.readyState == 4 amp;amp; this.status == 200) {
        let data = JSON.parse(this.responseText);
        _this.checkData(data);
    }
    else{
        console.log(this);
    }
}
 

Или вы используете bind() и используете xhr вместо этого

 xhr.onreadystatechange = function() {
    if (xhr.readyState == 4 amp;amp; xhr.status == 200) {
        let data = JSON.parse(xhr.responseText);
        this.checkData(data);
    }
    else{
        console.log(xhr);
    }
}.bind(this);