浅拷贝:就是复制相同的内容,浅拷贝的数据更改基本类型的数据,不会对原来数据产生影响,但是更改非基本类型(对象、数组)这种有地址的数据,会影响的原来的数据
概念没看懂没关系,看代码
浅拷贝:第一种(基本数据类型)
obj1: {
obj1Name: "我是obj1",
age: 1,
},
const kaobei={...obj1}
kaobei.obj1Name='我要改变obj1'
console.log(kaobei,this.obj1);
//因为改变的是obj1里的obj1Name,obj1Name属于基本数据类型,浅拷贝不影响基本数据类型
因为改变的是obj1里的obj1Name,obj1Name属于基本数据类型,浅拷贝不影响基本数据类型
第二种(数组、对象类特殊类型)
obj2:{
obj2Name:'我是obj2name',
arr2:[
{name:'son',age:5},
{name:'dau',age:6}
]
}
const kaobei2={...obj2}
kaobei2.arr2[0].name='我影响了son'
console.log(kaobei2,this.obj2);

因为改变的是obj2里的arr2的数据,arr2属于数组类型有地址,浅拷贝会影响到此类数据
深拷贝:就是复制相同的内容,但是形成了一个全新的自己,无论基本类型和特殊类型(对象、数组),无论怎么修改都不会影响原来的数据。
对于如何实现深拷贝与浅拷贝本文章不做介绍
版权声明:本文为i_am_father_for_原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。