JavaScript 深度克隆

在JavaScript 开发中,很多场景会遇到,引用类型的深度克隆。在 ES5 时,大部分开发者都用使用以下语句进行深度克隆。

js 复制代码
JSON.parse(JSON.stringify())

通过 JSON 进行转化,但是这中方式有局限性,对于包含循环引用或不符合 JSON 的数据类型(如 Map 和 Set,Blob 等 ) 的更复杂对象时,是有很多不足之处的。或者通过第三方插件库,如 lodash.js 等。

而现在,JavaScript 内置了一个 structuredClone() 的方法, 此方法提供了一种简单有效的方法来深度克隆对象, 且适用于大多数现代浏览器和 Node.js v17 以上。

js 复制代码
let  obj = {a: {}, b: {}};
let obj1 = structuredClone(obj);
obj1.a == obj.a; // false

tructuredClone() 允许您克隆循环引用,这是目前在 JavaScript 中使用深拷贝最简单的方法。

相关推荐
别看我只是一直狼2 分钟前
从观察者模式到 RxJS:让复杂的异步逻辑变得优雅又舒服
javascript
|晴 天|12 分钟前
我如何用Vue 3打造一个现代化个人博客系统(性能提升52%)
前端·javascript·vue.js
风止何安啊20 分钟前
网页都知道要双向握手才加载!从 URL 到页面渲染,单向喜欢连 DNS 都解析不通
前端·javascript·面试
xiaoshuaishuai826 分钟前
C# 实现百度搜索算法逆向
开发语言·windows·c#·dubbo
GISer_Jing27 分钟前
LangChain.js + LangGraph.js 前端AI开发实战指南
前端·javascript·langchain
yuan1999727 分钟前
使用模糊逻辑算法进行路径规划(MATLAB实现)
开发语言·算法·matlab
木心术132 分钟前
TypeScript实战进阶:从基础类型到高级类型编程
javascript·ubuntu·typescript
Hello--_--World1 小时前
浏览器同源策略与跨域问题
javascript
蒸汽求职1 小时前
北美求职身份过渡:Day 1 CPT 的合规红线与安全入职指南
开发语言·人工智能·安全·pdf·github·开源协议
零瓶水Herwt1 小时前
JavaScript对象继承常用详解
javascript