3

オブジェクトをインスタンス化するとき、jQuery の getJSON メソッドを使用してデータをフェッチし、そのデータからオブジェクトのプロパティを埋める必要があります。代わりにUncaught Reference: data is not defined、AJAX 呼び出しに乗ります。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');

なぜこれが機能しないのか、誰かが私を理解するのを手伝ってくれますか?

4

1 に答える 1