当前位置: 首页 > 网络应用技术

JS的深度被复制了,事实证明!

时间:2023-03-06 20:41:30 网络应用技术

  摘要:深层和阴影副本发生的原因本质上是因为JS对基本类型和参考类型具有不同的处理。

  浅复制只是对堆栈中数据的引用的副本,并且没有对堆栈内容的副本引用。桩。修改浅复制数据后,对堆中的参考内容进行了修改。目前,此处指向参考的数据也将更改。

  深度复制是指复制一堆内容,生成一个新的对象。许多深层复制将是许多不同的对象,并且有不同的引用,这指向不同的桩。

  在正常开发中,有时会有数据传输和接收。当获得传递的数据时,不可避免地需要处理和转换数据。为了不破坏原始数据结构,您可以使用深层复制数据。然后过程生成的新数据。深度复制也可以防止多次参考后的混乱问题,从而减少了生成错误的机会。

  实施方法1:JSON的序列化和加深序列化

  尽管JSON的序列化和加深序列化可以实现深刻的复制,但仍有几个缺点值得关注:

  1.日期对象转换为日期字符串

  2.无法访问原型

  3.无法复制未定义的属性

  4. Nan和无尽的

  实现方法2:object.assign()

  尽管object.assign()可以实现深度复制,但更深的对象引用只是浅的。

  实施方法三:扩展运算符

  尽管扩展的操作员“ ...”可以实现深层复制,但仅对于更深的对象引用才是浅薄的。

  实施方法四:使用递归

  如果您想实现深度复制并实现多层复制,则可以使用递归循环。

  Lodash加深复制是一种更专业的加深方法。

  首先启动,生成package.json文件,然后使用命令安装它。

  本文分享了真诚的Yunyun社区,作者:XIN 2020。