オブジェクトをインスタンス化するとき、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');
なぜこれが機能しないのか、誰かが私を理解するのを手伝ってくれますか?