无法在ajax之后访问某些对象数据

时间:2018-02-04 19:47:47

标签: javascript jquery ajax asynchronous callback

在下面的代码中,为什么console.log(myObject.obj1)在控制台中显示 proto 对象而不是实际的对象数据?同时,我可以使用console.log(myObject)看到obj1数据。

$(function () {

    var myObject = {
        obj1: {},
    }

    $.ajax({
        url: "foobar.json",
        success: function (data) {
            myObject.obj1 = data.obj1;
        }
   });

    console.log(myObject); // displays myObject data in console!
    console.log(myObject.obj1 ) // displays a __proto__ object :(

});

如果这与异步代码有关,为什么console.log(myObject)有效?也许这与范围有关,即myObject.obj1超出范围?

0 个答案:

没有答案