传递的方式
基础类型是 按值传递
引用类型是 按引用地址传递
所以这里的浅拷贝或深拷贝都是指引用类型
定义
浅拷贝就是简单的复制,改变其中一个,另一个也跟着改变。
深拷贝就是根据遍历源对象的属性并重新赋给新对象,改变其中一个,另一个不会改变。
数组的深拷贝
- slice()
- Array.from(arr)
- 也可以用遍历的方法
对象的深拷贝
- let obj2 = Object.assign({}, obj1), 如果对象只有一层的话,可以用这个方法.
- 用JSON.stringify 把对象转成字符串,再用JSON.parse()把字符串转成对象
- Object.create()
- 递归拷贝