js深拷贝方法:
对象深拷贝,等号赋值后一个对象中的对象改变时另一个对象的对象也随着先来一段代码看看我们的问题:
var obj1={
name:'lisi',
age:{
width:1,
height:2,
}
}
var obj2={};
for(var key in obj1){
obj2[key]=obj1[key];
}
obj1.age.width++;
obj1.name='tom'
console.log(obj1==obj2) //false,
console.log(obj2); //{name:"lisi",age{width:1,height:2}}
console.log(obj1); //{name:"lisi",age{width:1,height:2}}
运行结果:
eg: 我尝试了es6语法中的扩展运算符{…},它也解决不了赋值后一个对象中的对象改变时另一个对象的对象也随着改变,所以扩展运算符也不行
var obj1={
name:'lisi',
age:{
width:1,
height:2,
}
}
obj2={...obj1}
obj1.age.width++;
obj1.name='t