js深拷贝和浅拷贝的方法(js深浅拷贝的区别)

js深拷贝和浅拷贝的方法(js深浅拷贝的区别)首先来看一下如下代码 你会发现 同一个 Array 或者 Object 赋值给两个不同变量时 变量指向的是同一个内存地址 所以就会造成其中一个变量改变属性值 同时改变了另外一个变量的对应属性值 而大多数实际项目中 我们想要的结果是两个变量 初始值相同 互不影响 所以就要使用到拷贝 分为深浅两种 浅拷贝只复制一层对象的属性 而深拷贝则递归复制了所有层级 浅拷贝有效性针对的是单一层级对象 1 2

大家好,我是讯享网,很高兴认识大家。



首先来看一下如下代码


讯享网

 

讯享网

你会发现,同一个Array或者Object赋值给两个不同变量时,变量指向的是同一个内存地址,所以就会造成其中一个变量改变属性值,同时改变了另外一个变量的对应属性值。

而大多数实际项目中,我们想要的结果是两个变量(初始值相同)互不影响。所以就要使用到 拷贝(分为深浅两种)

浅拷贝只复制一层对象的属性,而深拷贝则递归复制了所有层级。
浅拷贝有效性针对的是单一层级对象 [1,2,3]或者{a:1,b:2}
深拷贝有效性针对的是单层或者多层级对象 [1,2,3]或者{a:1,b:2}或者[1,[1],{a:1}]或者{a:[1],b:{c:2}}
  • 如何实现
讯享网
  • 应用场景
    对于一层结构的Array和Object想要拷贝一个副本时使用
    vue的mixin是浅拷贝的一种复杂型式

  • 如何实现
 
  • 应用场景
    复制深层次的object数据结构
  • 对深拷贝的应用想法
    在实际工作中是不是用继承来实现更好?需要大家来讨论,提意见

小讯
上一篇 2025-05-24 10:46
下一篇 2025-05-07 21:04

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/143258.html