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

五种浅副本的实施方式

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

  浅副本和深副本是一个长期的面试问题。今天,让我们总结一下今天可用的浅副本及其各自的优势和缺点。

  首先,看看什么是浅副本

  自己创建一个新对象以接受要复制或引用的对象值。如果对象属性是基本数据类型,则将基本类型的值复制到新对象;但是,如果引用属性数据类型,则内存中的地址与另一个对象相对。

  object.Assign是对象的一种方法。此方法可用于多种用途,例如JS对象。其中之一是浅副本。该方法的第一个参数是副本的目标对象,后续参数是副本的源对象(也可以是多个来源)。

  这么方便地完成这笔钱后,您可以修改数据下一步

  修改后,OBJ和来源的年龄已成为20岁,它符合浅副本的定义

  当心:

  常见的继承属性tostring等。

  您也可以使用扩展操作员完成浅副本

  上面的代码与使用对象函数相同,并且其预防措施相同。两者基本上可以在使用中相互转换

  阵列的contat方法实际上是浅副本。使用方案相对较小。当使用Concat连接包含参考类型的数组时,您需要注意修改原始数组中元素的属性,因为它将影响复制复制后连接的数组。

  可以发现,ARR和Newarr索引2的数据已从{name:'nordon'}更改为{name:'wy'}

  数组的切片方法实际上是浅副本,使用场景相对较小。

  社区中有一些出色的工具功能库。在开发过程中,这些库暴露的功能可直接用于获得浅拷贝。例如

  最后让我们自己做一个浅副本功能

  根据上一篇文章的浅副本的定义,可以清楚地知道浅副本的核心点:

  接下来,直接应用代码: