深拷贝和浅拷贝的区别:
浅拷贝是指, 修改B对象的属性和方法会影响到A对象的属性和方法, 我们称之为浅拷贝;
深拷贝是指, 修改B对象的属性和方法不会影响到A对象的属性和方法, 我们称之为深拷贝
tip:
基本数据类型:number, string, boolean, null, undefined, symbol
引用数据类型:object, array, function
- 默认情况下对象之间的直接赋值都是浅拷贝
- 默认情况下一个对象的属性如果是基本数据类型, 那么都是深拷贝
- 如果对象的属性包含了引用数据类型, 才真正的区分深拷贝和浅拷贝
深拷贝方法:
直接等于source会是浅拷贝,原数据会产生影响,因此,有时候需要用深拷贝方法。
JSON.parse(JSON.stringify(source));