Javascript 对象内部的JSON调用失败。未捕获引用:未定义数据

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) {

当我实例化一个对象时,它应该使用jQuery的getJSON方法获取数据,并从该数据中填充对象的属性。相反,我得到了
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”函数,而不是将其设置为回调函数。这一切都很有意义。谢谢大家。现在,我开始解决下一个问题。;-)