如何通过引用将JavaScript对象复制到新变量?
这个问题在这里已经有了答案:
我发现如果你不使用jQuery,只对克隆简单对象感兴趣,请参阅以下内容(请参阅注释)。
JSON.parse(JSON.stringify(json_original));
你唯一的选择是以某种方式克隆该对象。
关于如何实现这一点,请参阅此stackoverflow问题。
对于简单的JSON对象,最简单的方法是:
var newObject = JSON.parse(JSON.stringify(oldObject));
如果你使用jQuery,你可以使用:
// Shallow copy
var newObject = jQuery.extend({}, oldObject);
// Deep copy
var newObject = jQuery.extend(true, {}, oldObject);
更新2017年:我应该提及,因为这是一个流行的答案,现在有更好的方法来实现这个使用更新版本的JavaScript:
在ES6或TypeScript(2.1+)中:
var shallowCopy = { ...oldObject };
var shallowCopyWithExtraProp = { ...oldObject, extraProp: "abc" };
请注意,如果extraProp
也是extraProp
上的一个属性,则不会使用它的值,因为extraProp : "abc"
将在后面的表达式中指定,这基本上会覆盖它。 当然,oldObject不会被修改。
上一篇: How to copy JavaScript object to new variable NOT by reference?