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

标签 javascript jquery ajax json object

我在这里查看了许多关于克隆和复制 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)),以及来自“Copying an Javascript 中的对象”帖子,但都无济于事。

我错过了什么吗?

最佳答案

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

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

关于javascript - 为什么 jQuery 扩展方法不复制我的 javascript 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13090022/

相关文章:

jquery - 根据点击事件将类添加到多个div

c# - 对 C# Controller 的 HTTP POST 请求

javascript - 如何使用ajax和post方法访问服务器

javascript - 如何在 angularJS 中重构指令代码

javascript - 在 Chrome 中实时重新加载 JavaScript

javascript - 优化jQuery代码逻辑

jquery - TinyMCE execCommand 返回未定义

javascript - Openlayers 不重新投影 WMS 查询

javascript - 我的新 HTML 元素正在以指数速度创建 WTF Javascript 和 jQuery

javascript - 所需文件上传进度条