AtalantaDavis 2022-01-12 14:24 采纳率: 100%
浏览 153
已结题

array.from()是浅拷贝还是深拷贝

浅拷贝:只复制指向引用类型的指针,而不复制引用类型本身,新旧引用类型还是共享同一块内存。浅拷贝的引用类型若包含子引用类型,当新的引用类型对子引用类型发生改变时则会使原引用类型子引用类型一同改变,若新的引用类型只改变第一层的数据,则原引用类型不会改变。

深拷贝:会另外创造一个一模一样的引用类型,新引用类型跟原引用类型不共享内存,修改新引用类型不会改到原引用类型。

如上,网上查到的浅拷贝和深拷贝的定义。
正常的数组的浅拷贝应该是下面这样的。

img

array.from()是这样的

img

这个现象来说应该是深拷贝。

但我发现好多文章写的都是浅拷贝。

我该信谁的?

  • 写回答

5条回答 默认 最新

  • 几何心凉 2022年度博客之星前端领域TOP 1 2022-01-12 14:36
    关注

    重组数组了 就不涉及到深浅问题了 你就记着他不会有浅拷贝那么多的麻烦事情了,你要说他是深拷贝 他确实没有去顾及数组中的指向问题,你要说是浅拷贝他不会去影响以前的数据,所以你只需要记住他不会有浅拷贝那么多的麻烦事就行了

    本回答被专家选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(4条)

报告相同问题?

问题事件

  • 系统已结题 8月1日
  • 专家已采纳回答 7月24日
  • 创建了问题 1月12日