原生JS浅拷贝、深拷贝解读

80 阅读1分钟
  1. 浅拷贝只是拷贝一层,更深层次对象级别的只拷贝引用。
  • 所以修改任一更深层次的其他的都会改变。

  • 更深层次对象级别的只拷贝引用,也就是只拷贝地址。

  • ES6之前实现浅拷贝就是用for循环遍历来实现。

  • ES6语法糖——Object.assgin(target,sources)。

  2.深拷贝拷贝多层,每一级别的数据都会拷贝。

  • 都会开辟新的地址,所以改变一个属性的值不会引起其他值的改变。
  • 利用函数递归实现深拷贝,只要遇到属性是数组或者对象这种复杂数据类型就再进行一次拷贝。