gpt4 book ai didi

javascript - 对象内部的 JSON 调用失败。未捕获引用 : data is not defined

转载 作者:行者123 更新时间:2023-11-29 18:23:04 26 4
gpt4 key购买 nike

当我实例化一个对象时,它应该使用 jQuery 的 getJSON 方法获取数据并从该数据填充对象的属性。相反,我在 AJAX 调用中得到了 Uncaught Reference: data is not defineddata,在本例中,是我传递给回调函数的 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,然后将其返回的值 (undefined) 作为回调传递给 $.getJSON()

关于javascript - 对象内部的 JSON 调用失败。未捕获引用 : data is not defined,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16449053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com