传递的方式

基础类型是 按值传递
引用类型是 按引用地址传递
所以这里的浅拷贝或深拷贝都是指引用类型

定义

浅拷贝就是简单的复制,改变其中一个,另一个也跟着改变。
深拷贝就是根据遍历源对象的属性并重新赋给新对象,改变其中一个,另一个不会改变。

数组的深拷贝

  • slice()
  • Array.from(arr)
  • 也可以用遍历的方法

对象的深拷贝

  1. let obj2 = Object.assign({}, obj1), 如果对象只有一层的话,可以用这个方法.
  2. 用JSON.stringify 把对象转成字符串,再用JSON.parse()把字符串转成对象
  3. Object.create()
  4. 递归拷贝