如何通过引用将JavaScript对象复制到新变量?

这个问题在这里已经有了答案:

  • 在JavaScript中深入克隆对象的最有效方法是什么? 57个答案

  • 我发现如果你不使用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不会被修改。

    链接地址: http://www.djcxy.com/p/6935.html

    上一篇: How to copy JavaScript object to new variable NOT by reference?

    下一篇: (Deep) copying an array using jQuery