为什么jQuery扩展方法不复制我的javascript对象?

为什么jQuery扩展方法不复制我的javascript对象?,javascript,jquery,ajax,json,object,Javascript,Jquery,Ajax,Json,Object,我在这里查阅了许多关于克隆和复制javascript对象的帖子,特别是以下两个主题: 不过,这似乎对我不起作用 下面是我正在使用的一段代码: var copiedObject = {}; $.getJSON(URL, null, function (data) { copiedObject = jQuery.extend(true, {}, data); }); console.log(JSON.stringify(copiedObject)); 如果在JSON调用中有我

我在这里查阅了许多关于克隆和复制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))
,以及“在Javascript中复制对象”帖子中的
clone(obj)
函数,但都没有用


我遗漏了什么吗?

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

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

您是否尝试了
console.log(copiedObject)
(没有
JSON.stringify
)?谢谢,但是我的对象会在该函数之外保留它的值吗?我正试图限制我发出这个ajax请求的次数。@Rail24:是的。如果
copiedObject
包含在较高的父作用域中,则可以在任何子作用域中访问其值。您需要确保的是,访问该变量的每段代码都在请求完成后执行。