Js clone array - 在JavaScript中深度克隆对象的最有效方法是什么?

object.freeze / javascript / object / clone

克隆JavaScript对象的最有效方法是什么?我见过 obj = eval(uneval(o)); 正在使用,但这是非标准的,并且仅受Firefox支持

我已经完成了 obj = JSON.parse(JSON.stringify(o)); 但质疑效率。

我也见过有各种缺陷的递归复制函数。
我很惊讶,没有规范的解决方案存在。

26 revs, 21 users 25%



Answer #1

安装时要注意

npm install clone

或将其与Ender打包在一起。

ender build clone [...]

然后你可以在你的源代码中使用它。

var clone = require('clone');

var a = { foo: { bar: 'baz' } };  // a的初始值
var b = clone(a);                 //克隆a-> b
a.foo.bar = 'foo';                //更改一个

console.log(a);                   // { foo: { bar: 'foo' } }
console.log(b);                   // { foo: { bar: 'baz' } }