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

js深拷贝和浅拷贝的实现方式(js深拷贝和浅拷贝的实现方式是什么)



JS浅拷贝与深拷贝只针对的是数组(Array)和对象(Object)两种引用数据类型。引用类型的数据在内存中分两部分存储,分别是存储在栈中的引用地址和存储在堆中的数据。

浅拷贝其实拷贝的是引用类型数据的地址,两个对象共享堆中的数据,一个对象改变了某个属性值,另一个对象的属性值也会跟着改变。而深拷贝则会同时拷贝引用地址和数据,之后两个对象之间是完全独立的,互不影响。

浅拷贝实现方式

深拷贝实现方式

1、var newObj = JSON.parse(JSON.stringify(obj));该方式实现简单,但是不能拷贝函数。

2、递归函数

注:因为JS并没有对hasOwnProperty属性名进行保护,在obj对象上可能存在同名的属性方法,如下:

obj.hasOwnProperty(i)条件语句将始终返回false,这显然不是我们期望的,所以可以使用原型上的hasOwnProperty方法,Object.prototype.hasOwnProperty.call(obj, i);

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

版权声明


相关文章:

  • vue生命周期的钩子函数(vue生命周期钩子函数作用)2025-11-26 14:54:05
  • junitplatform(junitplatform1.8.2对应的junit版本)2025-11-26 14:54:05
  • jsz是哪个明星的缩写(jz是哪位明星的缩写)2025-11-26 14:54:05
  • vue2关闭eslint检测(如何关闭eslint的警告)2025-11-26 14:54:05
  • vue插槽几种模式(vue插槽有什么作用)2025-11-26 14:54:05
  • Ubuntu换源更新缓存错误(ubuntu20.04更新源)2025-11-26 14:54:05
  • stompjs(stompJS详解)2025-11-26 14:54:05
  • ubuntu镜像文件在哪(ubuntu18.04镜像文件)2025-11-26 14:54:05
  • 上一章 目录 设置(上一章 目录 设置2063、金色月光 作者:魂如易 ...)2025-11-26 14:54:05
  • js数组方法some(js数组方法有哪些)2025-11-26 14:54:05
  • 全屏图片