当前位置:   article > 正文

Object.assign 浅拷贝还是深拷贝_object assign 深拷贝 浅拷贝

object assign 深拷贝 浅拷贝

描述:

  Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象。它将返回目标对象。

      判断是深拷贝还是浅拷贝,首先我们要知道什么是深拷贝,什么是浅拷贝

        1.浅拷贝: 将原对象或原数组的引用直接赋给新对象,新数组,新对象/数组只是原对象的一个引用

        2.深拷贝: 创建一个新的对象和数组,将原对象的各项属性的“值”(数组的所有元素)拷贝过来,是“值”而不是“引用

  下面举例说明:

  1. let obj1 = { a: 0 , b: { c: 0}};
  2. let obj2 = Object.assign({}, obj1);
  3. console.log(obj2); // { a: 0, b: { c: 0}}
  4. obj2.a = 1
  5. console.log(obj1,obj2) // {a:0,b:{c:0}} {a:1,b:{c:0}}

 如果只看上面的结果,我们可以得出其是深拷贝结果,我们继续往下看 

  1. obj2.b.c = 1
  2. console.log(obj1,obj2) // {a:0,b:{c:1}} {a:1,b:{c:1}}

可以得出结论:第一级属性深拷贝,以后级别属性浅拷贝 

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

闽ICP备14008679号