Javascript如何进行深拷贝与浅拷贝?

4次阅读

浅拷贝只复制第一层属性,新旧对象共享嵌套引用;深拷贝递归复制所有层级,完全独立。常用浅拷贝有展开运算符Object.assign()、slice()/concat();深拷贝推荐structuredClone,其次jsON法,特殊需求可手写递归函数

Javascript如何进行深拷贝与浅拷贝?

javaScript中浅拷贝只复制对象的第一层属性,新旧对象共享嵌套的引用;深拷贝则递归复制所有层级,新对象与原对象完全独立。

浅拷贝的常见方式

适用于只有一层结构的对象或数组,修改嵌套内容会影响原对象。

  • 展开运算符(…):如 const newObj = {...oldObj}const newArr = [...oldArr]
  • Object.assign():如 const newObj = Object.assign({}, oldObj)
  • Array.prototype.slice() / concat():仅对数组有效,如 arr.slice()

深拷贝的实用方法

需要完整隔离嵌套结构时使用,注意性能和特殊值限制。

什么时候该用哪种?

多数场景下优先用 structuredClone(如有兼容性要求再降级);若只操作简单数据且需兼容老环境,JSON 方法够用;频繁操作或有特殊需求(如过滤字段、处理 BigInt),建议封装自定义深拷贝函数。

Javascript如何进行深拷贝与浅拷贝?

易标AI

告别低效手工,迎接AI标书新时代!3分钟智能生成,行业唯一具备查重功能,自动避雷废标项

Javascript如何进行深拷贝与浅拷贝? 135

查看详情 Javascript如何进行深拷贝与浅拷贝?

立即学习Java免费学习笔记(深入)”;

基本上就这些,不复杂但容易忽略嵌套影响和边界情况。

text=ZqhQzanResources