什么是克隆JavaScript对象最有效的方法?我见过使用
我已经尝试过像
我也看到了递归复制函数的各种缺陷。
我很惊讶没有一个权威的解决方案存在。
obj = eval(uneval(o));
,但这是非标准的,只有Firefox支持。我已经尝试过像
obj = JSON.parse(JSON.stringify(o));
这样的方式,但质疑其效率。我也看到了递归复制函数的各种缺陷。
我很惊讶没有一个权威的解决方案存在。
eval()
通常是不明智的,因为许多JavaScript引擎的优化器必须在处理通过eval()
设置的变量时关闭。仅仅使用eval()
就可能导致代码性能更差。 - user56reinstatemonica8JSON
方法会丢失任何在JSON中没有等价的JavaScript类型。例如:JSON.parse(JSON.stringify({a:null,b:NaN,c:Infinity,d:undefined,e:function(){},f:Number,g:false}))
将生成{a: null, b: null, c: null, g: false}
。 - oriadam