共计 558 个字符,预计需要花费 2 分钟才能阅读完成。
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 对象,则不能够应用该办法
正文完
发表至: javascript
2021-02-27