structuredClone() 深拷贝克隆对象

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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容