JS对象递归深度拷贝
在JavaScript中,拷贝对象分为两种方式,浅拷贝和深拷贝。
浅拷贝指两个不同的变量存的是同一个对象的地址,即两个变量指向同一块内存区域;深拷贝则是重新分配了一块内存区域来存储复制后的对象,两个变量存的是真正的两个互不影响的变量。
下面的就是浅拷贝,有时候需要保留原对象,复制出另外一份对象他用,就肯定会遇到这个问题,在修改另外的对象的时候,原对象也会跟着变化。

这是一种方法,如果对象非常多的话,可能就得考虑性能了。
// 深度拷贝
deepCopy(obj){
if ( typeof obj != 'object' ){ // ( obj instanceof Object || obj instanceof Array )
return obj;
}
var newobj = {};
for ( var attr in obj) {
newobj[attr] = this.deepCopy(obj[attr]);
}
return newobj;
}
部分内容来源于 js 对象拷贝

浙公网安备 33010602011771号