标签 深拷贝 下的文章

啥也不说,直接上链接:https://developer.mozilla.org/zh-CN/docs/Web/API/structuredClone
如果你懒得点,那只要知道下面的东西就行了。

全局的 structuredClone() 方法使用结构化克隆算法将给定的值进行深拷贝,说人话就是使用了 JavaScript 内部的一种算法深拷贝对象。这个内部的方法其实也是递归,它有一些限制,不能拷贝一些东西,这些距离咱们码农很远,一般不用考虑。如果你很好奇,结构化克隆算法的介绍在这里:

结构化克隆算法:
https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Workers_API/Structured_clone_algorithm

返回值就是你想要的那个东西:新对象:

structuredClone 的语法如下:
structuredClone(value)
structuredClone(value, { transfer })

可选参数 transfer 是啥?是可转移对象数组。啥是可转移对象数组?大概是跟内存有关的数据,例如 arrayBuffer 之类的,一般情况下也用不到。介绍在这里:

可转移对象:
https://developer.mozilla.org/zh-CN/docs/Glossary/Transferable_objects

structuredClone 示例如下:

let obj = { x: 1 };
let newObj = structuredClone(obj);
console.log(obj === newObj); //false

END