深拷贝是拷贝目标的地址(堆),浅拷贝拷贝属性地址(栈)
- 深拷贝
let obj1={name:'Jacl'}
let obj2=obj1
obj1["age"]=12
obj2//{name: "Jacl", age: 12}
用Object.assign(obj)实现深拷贝
let obj1={name:'Jacl'}
let obj2=Object.assign( obj1)
obj1["age"]=12
obj2//{name: "Jacl", age: 12}
- 浅拷贝
let obj1={name:'Jacl'}
let obj2={...obj1}
obj1["age"]=12
obj2//{name: "Jacl"}
当然,我们也可以在浅拷贝的同时修改所获对象的属性
let obj1={name:'Jacl'}
let obj2={...obj1,name:'Zha'}
obj1["age"]=12
obj2//{name: "Zha"}
函数会被去掉
deepClone(target) {
return JSON.parse(JSON.stringify(target))
},