Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在XMLHttpRequest中访问类方法?_Javascript_Oop - Fatal编程技术网

Javascript 如何在XMLHttpRequest中访问类方法?

Javascript 如何在XMLHttpRequest中访问类方法?,javascript,oop,Javascript,Oop,我有一个javascript类来管理API调用(这里是TimelinesManager),我需要在XMLHttpRequest.onload中调用我的管理器的一个方法(同一个类,名为arrayToObject) 我试图使用此.arrayToObject()和TimelinesManager.arrayToObject()访问它,但我得到一个错误,表示它不是函数(TypeError:this.arrayToObject不是函数) 如何访问该类方法?试试这个。我们需要把它放到一个变量中。在请求中,此

我有一个javascript类来管理API调用(这里是TimelinesManager),我需要在XMLHttpRequest.onload中调用我的管理器的一个方法(同一个类,名为arrayToObject)

我试图使用此.arrayToObject()和TimelinesManager.arrayToObject()访问它,但我得到一个错误,表示它不是函数(TypeError:this.arrayToObject不是函数)


如何访问该类方法?

试试这个。我们需要把它放到一个变量中。在请求中,此指的是请求

类TimelinesManager{
getTrends(访问令牌、开始、限制、回调){
//创建对API的请求
让自我=这个;
var request=new XMLHttpRequest();
request.open('GET','https://api.extopy.com/timeline/trends.php",对),;
request.onload=函数(){
var data=JSON.parse(this.response);
如果(request.status==200){
//在这里,我尝试访问我的类方法
回调(self.arrayToObject(数据));
}
};
request.send();
}
//我要调用的方法
arrayToObject(数据){
//这里我继续我的数据
}
}
class TimelinesManager {

  getTrends(access_token, start, limit, callback) {
    // Create a request to API
    var request = new XMLHttpRequest();
    request.open('GET', 'https://api.extopy.com/timeline/trends.php', true);
    request.onload = function () {
      var data = JSON.parse(this.response);
      if (request.status == 200) {
        // Here I try to access to my class method
        callback(this.arrayToObject(data));
      }
    };
    request.send();
  }

  // The method I want to call
  arrayToObject(data) {
    // Here I proceed my data
  }

}