当前位置:网站首页 > Vue.js开发 > 正文

js深拷贝和浅拷贝的区别简书(js深拷贝和浅拷贝如何实现)



(1)for···in只循环第一

(2)Object.assign方法

(3)直接用=赋值

(1)采用递归去拷贝所有层级属性

结果:

(2) 通过JSON对象来实现深拷贝

缺点: 无法实现对对象中方法的深拷贝,会显示为undefined

(3)通过jQuery的extend方法实现深拷贝

(4)lodash函数库实现深拷贝

(5)Reflect法

(6)手动实现深拷贝

(7)如果对象的value是基本类型的话,也可以用Object.assign来实现深拷贝,但是要把它赋值给一个空对象

对于Object.assign()而言,如果对象的属性值为简单类型(string,number),通过得到的新对象为深拷贝;如果属性值为对象或其他引用类型,那对于这个对象而言其实是浅拷贝的

对于src1和src2之间相同的属性是直接覆盖的,如果属性值为对象,是不会对对象直接的属性进行合并的。

Object.assign不会在那些源对象值为null或undefined的时候抛出错误。

(16条消息) Object.assign()到底是浅拷贝还是深拷贝?【Object.assign()的用法】_object.assign()的用法 深拷贝_你好像很好吃a的博客-CSDN博客

(8)用slice实现对数组的深拷贝

(9)用concat实现对数组的深拷贝

(10)直接使用var newObj = Object.create(oldObj),可以达到深拷贝的效果。

(11)使用扩展运算符实现深拷贝

到此这篇js深拷贝和浅拷贝的区别简书(js深拷贝和浅拷贝如何实现)的文章就介绍到这了,更多相关内容请继续浏览下面的相关 推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • jsj是哪个明星(jsy是哪个明星的名字缩写)2025-12-14 10:27:05
  • pcie5.0和pcie4.0区别显卡(pcie4.0和显卡有什么关系)2025-12-14 10:27:05
  • ubuntu2004换源(ubuntu20.10换源)2025-12-14 10:27:05
  • Vue钩子函数有哪些(vue3.0钩子函数)2025-12-14 10:27:05
  • vue2官网(vue2官网怎么打不开)2025-12-14 10:27:05
  • 天气预报接口 json(天气预报接口调用)2025-12-14 10:27:05
  • jsjl是什么意思(jsi是什么意思)2025-12-14 10:27:05
  • vue2升级3(vue2升级为vue3)2025-12-14 10:27:05
  • pcie5.0什么时候普及(pcie4.0推出时间)2025-12-14 10:27:05
  • redhat6.9重置root密码(redhat默认root密码)2025-12-14 10:27:05
  • 全屏图片