Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/84.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么这个对象突然没有定义?_Javascript_Jquery_Json_Object_Undefined - Fatal编程技术网

Javascript 为什么这个对象突然没有定义?

Javascript 为什么这个对象突然没有定义?,javascript,jquery,json,object,undefined,Javascript,Jquery,Json,Object,Undefined,以下是我的JavaScript代码: var Model = { get: function(id) { return this.data[id]; }, data: {}, init: function() { var self = this; $.getJSON(urlToServer, function(data) { $.each(data,

以下是我的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()方法访问单个子对象时,模型似乎没有定义

我就是不明白,请帮帮我


谢谢。

您正在尝试检索对象的字段“142”。我猜你只能从json中得到“1”、“2”和“3”id?如果我是对的,那么get函数返回给您正确的答案,因为不存在对象字段“142”。

您正在尝试检索对象字段“142”。我猜你只能从json中得到“1”、“2”和“3”id?如果我是对的,那么get函数返回给您正确的答案,因为不存在对象字段“142”。

$。getJSON
是一个异步请求,在调用
Model.get()
$之前必须等待响应。getJSON
是一个异步请求,在调用
Model.get()之前必须等待响应

查看您使用的示例代码,Model.get(1)将始终返回undefined


$.getJSON是一个AJAX调用,不一定立即返回(称为异步)。根据Model.get(1),您需要使用提供给$.getJSON的回调来触发任何逻辑,否则它将保持未定义状态。

查看您使用的示例代码,Model.get(1)将始终返回未定义状态


$.getJSON是一个AJAX调用,不一定立即返回(称为异步)。根据Model.get(1),您需要使用提供给$.getJSON的回调来触发任何逻辑,否则它将保持未定义状态。

这是一个输入错误。应该是Model.get(1)。我以为我已经编辑过了。。。那是个打字错误。应该是Model.get(1)。我以为我已经编辑过了。。。黑客示例在此处工作:黑客示例在此处工作: