在JavaScript中克隆对象

Sha*_*der 10 javascript clone object

考虑下面的代码或检查这个小提琴.

var obj = {
    name: "abc",
    age: 20
}

var objTwo;

console.log(obj.age);
objTwo = obj;
objTwo.age = 10;
console.log(obj.age);
Run Code Online (Sandbox Code Playgroud)

我创建了一个名为obj的对象,它有两个属性.现在我将obj分配给另一个名为objTwo的对象.现在我更新objTwo中的一个属性.同样的变化也反映在obj上.如何在不创建引用的情况下将值从一个对象分配给另一个对象?

Haw*_*awk 2

这将不通过引用分配

<script>
    var obj = 
    {
        name: 'abc',
        age: '30'
    };

    var objTwo = {};

    for( var i in obj )
    {
        objTwo[i] = obj[i];
    }
</script>
Run Code Online (Sandbox Code Playgroud)

查看小提琴

  • 您应该有一个 [*hasOwnProperty*](http://ecma-international.org/ecma-262/5.1/#sec-15.2.4.5) 过滤器(或使用 [*Object.keys*](http://ecma -international.org/ecma-262/5.1/#sec-15.2.3.14)),上面也将复制可枚举的继承属性。 (2认同)