美文网首页
structuredClone() 深拷贝克隆对象

structuredClone() 深拷贝克隆对象

作者: keknei | 来源:发表于2025-08-28 14:18 被阅读0次

JS新特性structuredClone(),一行代码深拷贝克隆对象,比起JSON.parse(JSON.stringify(obj))深拷贝性能更好

可以深拷贝任何结构的类型,包括但不限于普通对象、数组、Date对象、RegExp对象、Map、Set、ArrayBuffer、TypedArrays、Blob、File、ImageData、MessagePort,以及null、undefined、NaN、Infinity、-Infinity等特殊值

不支持的类型有函数、Symbol、类实例的方法/原型链、DOM 节点、Proxy 对象、不可序列化的 host 对象、WeakMap / WeakSet、函数作用域内的闭包变量

例如深拷贝一个普通的对象

const obj = {
  a: 1,
  b: 'string',
  c: [1,2,3]
}

const obj1 = structuredClone(obj);

obj.a = 2;

console.log(obj);
console.log(obj1);

结果如下图所示,obj1并没有跟着obj属性a的改变而改变

structuredClone.png

相关文章

  • 五、面试总结(五)

    对象 拷贝(clone) 如何实现对象克隆 深拷贝和浅拷贝区别 深拷贝和浅拷贝如何实现激活机制 写clone()方...

  • Java 之浅拷贝、深拷贝,你到底知多少?

    在 Java 开发中,对象拷贝或者说对象克隆是常有的事,对象克隆最终都离不开直接赋值、浅拷贝、深拷贝 这三种方式,...

  • 4 创建型之原型模式

    概念 通过克隆(深拷贝)已存在的对象来创建新的对象。 解释 将已存在的对象作为原型,在对此原型进行克隆得到克隆对象...

  • java克隆

    java克隆 java克隆分为浅克隆和深克隆,概念如下: 浅拷贝(浅克隆)克隆出来的对象的所有变量都含有与原来的对...

  • 第十九节: JavsScript对象类型检测,克隆与JS异步加载

    一、克隆对象 浅浅拷贝 浅拷贝 深拷贝 二、检测类型 三、 DOM树解析 什么是DOM树 ==>DOM...

  • 深克隆--何时是尽头?

    As we all know Java有两种拷贝,浅拷贝和深拷贝,高大上的叫法也叫浅克隆和深克隆。 深克隆有时会碰...

  • Java基础 - 深拷贝和浅拷贝

    Java 的深拷贝和浅拷贝 什么是深拷贝、浅拷贝 (深克隆、浅克隆)? 在 Java 中,数据类型分为 基本数据类...

  • js基础篇-简单的对象拷贝方法

    js对象拷贝的方法  对象拷贝的方法是一个难点,尤其是深拷贝。 1. 适合情况: JSON对象的深度克隆。方法是先...

  • C# 正确实现浅拷贝和深拷贝

    为对象创建副本的技术称为拷贝(也叫克隆)。我们将拷贝分为浅拷贝和深拷贝。 浅拷贝 将对象中的所有字段复制到新的对...

  • Java 对象克隆、深拷贝、浅拷贝

    Java 对象克隆、深拷贝、浅拷贝 背景 前一阵子在测试的时候,开发小哥因为需要缓存一个比较常用的对象,故此保存了...

网友评论

      本文标题:structuredClone() 深拷贝克隆对象

      本文链接:https://www.haomeiwen.com/subject/rdbjbjtx.html