[英]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.