区别:浅拷贝只复制对象的第一层性质,深拷贝可以对对象进行递归复制
1、浅拷贝:浅拷贝只拷贝了那个对象的内存地址,当只发生改变时,两者都会同时发生变化
const a={name:'张三',age:18}
const b=a;
console.log(a,b)
b.name='李四'
console.log(a,b)
a.name='王二'
console.log(a,b)
//{name:'张三',age:18} {name:'张三',age:18}
//{name:'李四',age:18}{name:'李四',age:18}
//{name:'王二',age:18}{name:'王二',age:18}
2、深拷贝:深拷贝就是增加一个指针,并申请一个新的内存,并且让这个新增加的指针指向这个新的内存地址使用深拷贝,但我们修改复制对象时,原对象不会发生变化
const a={name:'王二',age:18}
const b=JSON.parse(JSON.stringify(a))
console.log(a,b)
b.name='李四'
console.log(a,b)
a.name='麻子'
console.log(a,b)
//{name:'王二',age:18} {name:'王二',age:18}
//{name:'王二',age:18}{name:'李四',age:18}
//{name:'麻子',age:18}{name:'李四',age:18}
参考链接:https://blog.csdn.net/a1056244734/article/details/123433805