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

js中的深拷贝和浅拷贝(js深拷贝和浅拷贝的方法)



浅拷贝是指拷贝对象本身和第一层属性,而不拷贝嵌套在其内部的对象和数组。如果原始对象中的属性值为基本数据类型,则会被拷贝到新对象中,如果是对象或数组,则只会复制它们的引用。这意味着如果原始对象的属性值发生变化,拷贝后的对象的属性值也会随之变化,因为它们引用的是相同的内存空间。

深拷贝是指递归地拷贝所有嵌套在对象内部的对象和数组,直到所有属性值都是基本数据类型为止。这样,即使原始对象的属性值发生变化,拷贝后的对象的属性值也不会受到影响,因为它们引用的是不同的内存空间。

在 JS中,可以使用以下方法实现浅拷贝和深拷贝:

浅拷贝的几种常用方法::

  1.使用Object.assign()方法

 
  

  2.使用数组的slice()方法

 
  

 3.使用扩展运算符(...)

 
  

  4.使用cloneNode()方法(仅适用于对象字面量的浅拷贝)

 
  

需要注意的是,这些方法都不能处理函数、Symbol、包含循环引用的对象等。如果需要处理这些复杂情况,就需要使用深拷贝的方法

深拷贝的几种常用方法:

   1.使用递归的方式进行对象(数组)的深拷贝

 
  

    2.使用lodash库中的方法进行深拷贝

 
  

3. 使用jQuery中的方法进行深拷贝

 
  

4.使用JSON序列化和反序列化进行深拷贝

 
  

需要注意的是使用JSON序列化和反序列化进行深拷贝的方法只适用于对象中不包含函数、undefined、NaN、Infinity、-Infinity以及循环引用的情况

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

版权声明


相关文章:

  • Ubuntu源码安装cmake(ubuntu20.04安装cmake)2026-02-17 19:27:08
  • pcie5.0显卡能插4.0主板吗(pcie4.0显卡能插2.0主板吗)2026-02-17 19:27:08
  • vuecli3安装失败(安装vue-cli3)2026-02-17 19:27:08
  • pcie5.0速度已经超过内存速度了吗(pcie4.0x2速度)2026-02-17 19:27:08
  • vue安装脚手架失败(vue脚手架安装项目特别慢)2026-02-17 19:27:08
  • pcie5.0和pcie4.0区别电源(pcie4.0b550)2026-02-17 19:27:08
  • vue的路由守卫有什么应用场景(vue的路由守卫有哪些钩子函数)2026-02-17 19:27:08
  • ubuntu 源设置(ubuntu18.04设置源)2026-02-17 19:27:08
  • stompJS详解(strncpy详解)2026-02-17 19:27:08
  • pcie4.0能插pcie3.0么(pcie4.0能插pcie3.0么 nvme)2026-02-17 19:27:08
  • 全屏图片