javascript中的浅复制和深复制
- 浅复制:就是把数据的地址赋值给对应变量,而没有把具体的数据复制给变量,变量会随数据值的变化而变化。
- 深复制:就是把数据赋值给对应的变量,从而产生一个与源数据不相干的新数据(数据地址已变化)。
- 浅复制不会随着存储数据地址的变化而变化,只会随着数据值的变化而变化。
-
实现引用类型的深度复制
function clone(obj){
var o=[];
if(obj.constructor== Array) {
o=obj.slice(0);
}else{
o={};
for(var i in obj){
o[i] = typeof obj[i] === "object" ? obj[i].clone() : obj[i];}
}
return o;
}