三分钟了解什么是浅拷贝和深拷贝

浅拷贝:就是复制相同的内容,浅拷贝的数据更改基本类型的数据,不会对原来数据产生影响,但是更改非基本类型(对象、数组)这种有地址的数据,会影响的原来的数据


概念没看懂没关系,看代码

浅拷贝:第一种(基本数据类型)

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版权协议,转载请附上原文出处链接和本声明。