当前位置: 首页 > news >正文

js 实现深拷贝

js 实现深拷贝

  • 方法 1:手动实现
function deepClone(obj, seen = new WeakMap()) {// 处理 null 和非对象if (obj === null || typeof obj !== 'object') return obj;// 避免循环引用if (seen.has(obj)) return seen.get(obj);let clone;if (obj instanceof Date) {clone = new Date(obj);} else if (obj instanceof RegExp) {clone = new RegExp(obj);} else if (Array.isArray(obj)) {clone = [];} else {clone = {};}// 标记已访问seen.set(obj, clone);// 递归拷贝所有可枚举属性for (let key in obj) {if (obj.hasOwnProperty(key)) {clone[key] = deepClone(obj[key], seen);}}return clone;
}
  • 方法 2:使用 Lodash 库(推荐生产环境)
npm install lodash
import { cloneDeep } from 'lodash';const obj = { a: 1, b: { c: 2 } };
const clone = cloneDeep(obj);

✅ 优点:

  • 完整支持各种 JS 类型(包括 Map, Set, Date, RegExp, 函数等)
  • 自动处理循环引用
  • 经过充分测试,稳定可靠
http://www.dtcms.com/a/566291.html

相关文章:

  • 素材设计做的好的网站有哪些帝国 网站搬家
  • 商城手机网站设计做阿里巴巴网站图片尺寸
  • 小说网站seo排名怎么做自己做个网站需要什么
  • 计算机网络R2025秋(TYUT)【计算机网络】第5章 运输层
  • 广州站八个字网站中新颖的功能
  • 梳理了音视频开发核心知识点
  • dedecms怎么把一个网站的文章导出导到另一个站里中国工程建设交易信息网站
  • 计算机网络8
  • 霍山有没有做建网站的商洛市城乡建设规划局网站
  • 厦门seo网站管理网站建设好后怎样形成app
  • Vue 生成 PDF 完整教程
  • 【C++日志库】启程者团队开源:轻量级高性能VoyLog日志库完全指南
  • 【Dify】详细介绍+功能说明
  • 做a手机视频在线观看网站3d装修效果图制作软件
  • 从化营销网站建设高新区微网站建设
  • 【区间贪心 区间覆盖】1326. 灌溉花园的最少水龙头数目|1885
  • flash网站模板下载锦江区建设和交通局网站
  • 如何做社团网站企业网站seo数据
  • 【6】更进一步理解UEFI核心概念:Device、Driver、Handle、Protocol、Image
  • 2024/12 JLPT听力原文 问题四
  • 摆脱重复劳动:利用n8n核心触发器(Cron、Webhook、手动)开启自动化新篇章
  • go 做视频网站毕业设计网站建设题目
  • IDM插件开发挑战赛技术
  • 网站编辑软件都有哪些ag亚游平台网站开发
  • 哈尔滨网站建设丿薇php网站开发核心技术
  • 成都网站建设外贸北京优化社区防控措施方案
  • 2025母婴用品双11营销解码与AI应用洞察报告|附40+份报告PDF、数据、绘图模板汇总下载
  • 论文收录网站排名不同域名一样的网站
  • 云酒店网站建设wordpress增加导航栏
  • 宁波网站制作哪家优惠多wordpress ajax 翻页