3

我在这里查看了许多关于克隆和复制 javascript 对象的帖子,特别是这两个主题:

不过,它似乎对我不起作用。

这是我正在使用的代码片段:

var copiedObject = {};

$.getJSON(URL, null, function (data) {
     copiedObject = jQuery.extend(true, {}, data);
});

console.log(JSON.stringify(copiedObject));

如果我在 JSON 调用中有我的控制台日志函数,它会输出正确的值,但在函数之后,它会被清空,并输出{}.

我试过使用copiedObject = JSON.parse(JSON.stringify(data)),以及clone(obj)“在 Javascript 中复制对象”帖子中的函数,但都无济于事。

我错过了什么吗?

4

1 回答 1

8

$.getJSON触发Ajax 请求,默认情况下运行异步。您的console.log遗嘱在请求完成之前触发。通过将控制台输出移动到回调中来修复它。

$.getJSON(URL, null, function (data) {
     copiedObject = jQuery.extend(true, {}, data);
     console.log(JSON.stringify(copiedObject));
});
于 2012-10-26T15:40:12.397 回答