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

js深拷贝和浅拷贝的方法区别(js深拷贝和浅拷贝如何实现)



目录

一、区别

浅拷贝(shallow copy):

深拷贝(deep copy)

二、实现方法:

浅拷贝

1、直接赋值法

深拷贝

1、Object.assign()

2、转成JSON

3、递归

4. 通过jQuery的extend方法实现深拷贝

5. lodash函数库实现深拷贝


        复制指向某个对象的指针,而不复制对象本身,新旧对象共享一块内存;浅拷贝就是只拷贝一层,更深层次对象级别只拷贝引用(地址)当拷贝的新对象发生改变时,原对象也会发生相同的改变,也就是说,浅拷贝会影响原来的元素

     每一级的数据都会拷贝 深拷贝只拷贝内容,两个对象拥有不同的地址,当拷贝出来的对象发生改变时,原对象内容不会改变,两者互不影响

当对象中只有一级属性,没有二级属性的时候,此方法为深拷贝,但是对象中有对象的时候,此方法,在二级属性以后就是浅拷贝。

  用JSON.stringify把对象转成字符串,再用JSON.parse把字符串转成新的对象。

 但这种方法的缺陷是会破坏原型链,并且无法拷贝属性值为function的属性

  采用递归的方法去复制拷贝对象

jQuery.extend源码

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

版权声明


相关文章:

  • map转json数组(map转json字符串)2025-03-24 10:00:09
  • vue ui怎么安装(vue安装步骤)2025-03-24 10:00:09
  • 本地回环地址(本地回环地址是只有127.0.0.1这一个吗)2025-03-24 10:00:09
  • de4dot反编译vue(vue 反编译)2025-03-24 10:00:09
  • vue安装router命令(vue中router的配置)2025-03-24 10:00:09
  • cjson库内存泄露(performselector内存泄露)2025-03-24 10:00:09
  • vue安装脚手架 检查版本(vue3.0脚手架安装)2025-03-24 10:00:09
  • pcie5.0 4.0(pcie5.0 4.0 3.0 游戏)2025-03-24 10:00:09
  • vuejs插槽(vue3.0 插槽)2025-03-24 10:00:09
  • 卡巴斯基更新源(卡巴斯基7.0)2025-03-24 10:00:09
  • 全屏图片