Javascript 对象内部的JSON调用失败。未捕获引用:未定义数据
当我实例化一个对象时,它应该使用jQuery的getJSON方法获取数据,并从该数据中填充对象的属性。相反,我得到了Javascript 对象内部的JSON调用失败。未捕获引用:未定义数据,javascript,jquery,ajax,oop,Javascript,Jquery,Ajax,Oop,当我实例化一个对象时,它应该使用jQuery的getJSON方法获取数据,并从该数据中填充对象的属性。相反,我得到了Uncaught引用:在AJAX调用中没有定义数据data是我传递给回调函数的JSON数据对象参数的名称 我的构造函数: function HeadlineList(url) { this.url = url; this.checkEmpty = function() { if (this.headlines === 0) {
Uncaught引用:在AJAX调用中没有定义数据<在本例中,code>data
是我传递给回调函数的JSON数据对象参数的名称
我的构造函数:
function HeadlineList(url) {
this.url = url;
this.checkEmpty = function() {
if (this.headlines === 0) {
this.refreshContent();
}
};
this.getRandom = function(remove) {
var headlineNumber = Math.floor(Math.random()*this.quantity);
var headline = this.headlines[headlineNumber];
if (remove) {
this.deleteHeadline(headlineNumber);
}
return headline;
};
this.getHeadline = function(number, remove) {
var headline = this.headlines[number]
if (remove) {
this.deleteHeadline(number);
}
return headline;
};
this.deleteHeadline = function(number) {
this.headlines.splice(number, 1);
this. quantity -= 1;
};
this.fillFromJSON = function(data) {
this.headlines = data.headlines;
this.quantity = this.list.length;
};
this.refreshContent = function() {
$.getJSON(this.url, this.fillFromJSON(data));
};
this.refreshContent();
}
我正在实例化一个对象,如下所示:
headlines = new HeadlineList('js/headlines.json');
有人能帮我弄清楚为什么这不起作用吗?当将函数引用作为回调传递给$.getJSON时,您希望传递对该函数的引用。此时不需要命名参数
$.getJSON(url,myFunction);
参数已在此处命名:
myFunction = function(data) {
...
}
如果你改为
$.getJSON(url,myFunction(data));
实际上,您正在立即执行myFunction,然后将从myFunction返回的值(
未定义的
)作为回调传递给$。getJSON()
摆脱(数据)
,您要传递的是对函数的引用,而不是从函数返回的值。^^^^^+1应该是$。getJSON(this.url,this.fillFromJSON);
@KevinB意味着您应该更改$.getJSON()
调用。按照您的方式,您正在调用“fillFromJSON”函数,而不是将其设置为回调函数。这一切都很有意义。谢谢大家。现在,我开始解决下一个问题。;-)