structuredClone() 深拷贝克隆对象

2025-08-28  本文已影响0人  keknei

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
上一篇 下一篇

猜你喜欢

热点阅读