我有一个 JavaScript 类,想要将 $.getJSON 的结果传递给同一类的另一个方法,并从类外部访问它。我的错误在哪里?
我的代码类似这样:
function MyClass() {
var mydata = false;
this.getData = function() {
$.getJSON( "/api/get.php", function(data) {
this.setData(data);
});
}
this.setData = function(data) {
this.mydata = data;
this.logData();
}
this.logData = function() {
console.log(this.mydata);
}
this.returnData = function() {
return this.mydata;
}
}
var MyClass = new MyClass();
MyClass.getData();
var data = MyClass.returnData();
首先,我想创建类的实例并从服务器获取数据。然后方法 setData 应该验证结果,将其存储在变量中并将结果记录到控制台。之后我想从类外部访问数据。
最佳答案
this
在每个函数中都会发生变化,因此您可以将 this
存储在变量中:
function MyClass() {
var mydata = false, that = this;
this.getData = function() {
$.getJSON( "/api/get.php", function(data) {
that.setData(data);
});
}
this.setData = function(data) {
that.mydata = data;
that.logData();
}
this.logData = function() {
console.log(that.mydata);
}
this.returnData = function() {
return that.mydata;
}
}
var MyClass = new MyClass();
MyClass.getData();
var data = MyClass.returnData();
关于javascript - 将 $.getJSON 的结果传递给同一个类的另一个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32209937/