如何实现深拷贝
- JSON.parse(JSON.stringify(obj))
- lodash.cloneDeep 推荐,工作中没必要重复造轮子
const obj1 ={
name:"张三",
age:18,
address:{
city:"背景"
},
hobby:["台球","篮球"],
fn:function(){
console.log(123);
},
}
const obj2 = deepClone(obj1)
obj2.age = 20
obj2.address.city = '上海'
console.log(obj1);
console.log(obj2);
function deepClone(obj){
if (typeof obj !== 'object' || obj==null){
return obj
}
let res = obj instanceof Array ?[]:{};
for(let key in obj){
if(obj.hasOwnProperty(key)){
res[key] = deepClone(obj[key])
}
}
return res;
}
</script>