我怎样才能在JavaScript中制作一个对象的副本?

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

  • 我如何正确克隆一个JavaScript对象? 54个答案

  • 您将不得不将每个属性映射到新数组:

    简单的一级克隆可以这样做:

    function clone(a, b) {
        var prop;
        for( prop in b ) {
            b[prop] = a;
        }
    }
    

    这将克隆从ba所有属性。 但请所有其他属性a

    var a = {a: 9, c: 1},
        b = {a: 1, b: 1};
    
    copy(a, b); // {a: 1, b: 1, c: 1}
    

    深克隆对象:

    上面的例子在处理单个级别的对象时会起作用,但是当存在多个级别时会造成混乱,请看下面的例子:

    var a = {},
        b = { a: { a: 1 } }
    
    clone(a, b);
    
    a.a.a = 2; 
    console.log(a); // { a: { a: 2 } }
    console.log(b); // { a: { a: 2 } }
    

    上面的例子证明了aa内部的对象与ba内部的对象相同。

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

    上一篇: How can I make a copy of an object in JavaScript?

    下一篇: Object.Freeze Javascript