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