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 中使用深拷贝最简单的方法。

相关推荐
xyq2024几秒前
Swift 类
开发语言
赏金术士1 分钟前
Kotlin 从入门到进阶 之异常与标准库(八)
android·开发语言·kotlin
Brilliantwxx1 分钟前
【C++】认识 list(初步认识+模拟实现)
开发语言·数据结构·c++·笔记·算法·list
曹牧2 分钟前
Java:数据载体
java·开发语言
赏金术士3 分钟前
Kotlin 从入门到进阶 之基础语法模块(一)
开发语言·微信·kotlin
格林威3 分钟前
Baumer工业相机堡盟相机Chunk功能全解析:如何在图像中嵌入时间戳、编码器值等元数据?
开发语言·人工智能·数码相机·机器学习·计算机视觉·视觉检测·机器视觉
invicinble3 分钟前
前端框架使用vue-cli (第五层:构建打包层--vue.config.js文件介绍以及环境文件)
javascript·vue.js·前端框架
南宫萧幕4 分钟前
锂电池二阶 RC 模型仿真实战:从理论解析到 Simulink 闭环搭建全流程
开发语言·人工智能·算法·机器学习
水木流年追梦5 分钟前
【python因果库实战29】LaLonde 数据集2
开发语言·python·数据挖掘·langchain·机器人
不会编程的懒洋洋5 分钟前
WPF 性能优化+异步+渲染
开发语言·笔记·性能优化·c#·wpf·图形渲染·线程