1、如果只是一层数组或是对象,其元素只是简略类型的元素,那么属于深拷贝(就是一层拷贝,临时就了解为深拷贝吧!!!!)
let aa = {age: 18,name: 'aaa'}let bb = {...aa};bb.age = 22;console.log(aa.age); // 18
2、如果数组或对象中的元素是援用类型的元素,那么就是浅拷贝
let aa = {age: 18,name: 'aaa',address: { city: 'shanghai'}}let bb = {...aa};bb.address.city = 'shenzhen';console.log(aa.address.city); // shenzhen
3、如何使得深拷贝
let aa = { age: 18, name: 'aaa', address: { city: 'shanghai' }}let bb = { ...aa, address: {...aa.address}};bb.address.city = 'shenzhen';console.log(aa.address.city); // shanghai
或者利用JSON.parse(JSON.stringfy(xxx))来实现深拷贝
留神:JSON.parse(JSON.stringfy(xxx))的办法,如果变量中含有Promise对象,则不能够应用该办法