[英]Why is this object suddenly undefined?
這是我的JavaScript代碼:
var Model =
{
get: function(id)
{
return this.data[id];
},
data: {},
init: function()
{
var self = this;
$.getJSON(urlToServer, function(data)
{
$.each(data, function(i, object)
{
self.data[object.id] = object;
console.log(object.id); // output is: 1, then 2, then 3
});
});
}
};
Model.init();
console.log(Model); // output is the initialized object with children objects 1, 2, 3
console.log(Model.get(1)); // output is undefined
從控制台輸出中可以看到,我在注釋中輸入了所有內容,直到最后一行代碼為止。 我定義一個模型,並使用服務器提供的一些JSON對象對其進行初始化。 但是突然之間,當我嘗試通過get()方法訪問單個子對象時,該模型似乎未定義。
我不明白,請幫幫我。
謝謝。
查看您使用的示例代碼,Model.get(1)將始終返回未定義。
$ .getJSON是一個AJAX調用,不一定立即返回(稱為異步)。 您將需要使用提供給$ .getJSON的回調來觸發依賴於Model.get(1)的任何邏輯,否則它將保持不確定狀態。
$.getJSON
是一個異步請求,在調用Model.get()
之前必須等待響應
您試圖檢索對象的字段“ 142”。 我想你只能從json獲得“ 1”,“ 2”和“ 3” ID嗎? 如果我是正確的,那么get函數將為您返回正確的答案,因為不存在對象字段“ 142”。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.