当前位置:   article > 正文

Object.assign实现深复制的方式_object.assign()的用法 深拷贝

object.assign()的用法 深拷贝

Object.assign方法用于对象的合并,将源对象(source)的所有可枚举属性,复制到目标对象(target)。

const target = { a: 1 };
const source1 = { b: 2 };
const source2 = { c: 3 };
Object.assign(target, source1, source2);
target // {a:1, b:2, c:3}
  • 1
  • 2
  • 3
  • 4
  • 5

Object.assign方法的第一个参数是目标对象,后面的参数都是源对象。
这里主要是说这个方法的深浅复制
首先需要明确的是使用Object.assign方法生成的对象,是target对象,即函数的第一个参数,我们这样定义:

      let a1 = { a: 1 }
      let b1 = { b: 1 }
      let newData = Object.assign(a1, b1)
  • 1
  • 2
  • 3

此时,newData的值是a1(目标对象)的值,两者是完全一样的,修改a1 的值就是修改 newData的值,修改newData的值就是修改a1的值,这是浅复制,如果Object.assign只有一个参数let newData = Object.assign(a1),就是说方法中只有目标对象,目标对象和newData是浅复制,是相互影响的。
源对象(第二个以后的参数)改变是不会影响目标对象的,同样,目标对象改变也不会影响源对象,所以当我们想实现深复制的方式的两种方式:例如我们想深复制数据a 生成一个新对象newData

声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号