一、什么是深拷贝和浅拷贝
(1) 浅拷贝:只是拷贝了源对象的地址,所以源对象的任何值发生改变时,拷贝对象的值也会随之而发生变化。
(2) 深拷贝:则是拷贝了源对象的所有值而不是地址,所以即使源对象的值发生任何变化时,拷贝对象的值也不会改变。
二、学习深浅拷贝之前可以先去学习数据类型
//值类型(基本类型):字符串(string)、数值(number)、布尔值(boolean)、undefined、null ;
//引用类型:对象(Object)、数组(Array)、函数(Function)
二、实现
这里深浅拷贝我都是使用手写方法实现,对于其他的方法大多都有相应的缺陷,大家也可以去了解。
比如深拷贝://Object.assign()缺点: 当对象中只有一级属性,没有二级属性的时候,此方法为深拷贝,但是对象中有对象的时候,此方法,在二级属性以后就是浅拷贝。 //JSON方法缺点:使用JSON.stringify()以及JSON.parse()它是不可以拷贝 undefined , function,symbol, RegExp 等等类型的
(1)浅拷贝
(2)深拷贝
(3)日期的浅拷贝和深拷贝