之前的 JS 数据深拷贝,都是要么递归要么是利用 MessageChannel 来实现深克隆,现在终结者来了,JS 原生支持的函数 structuredClone ,可以实现数据深拷贝
StructuredClone API
structuredClone 是结构化拷贝算法的实现,能够实现几乎对所有数据类型的深拷贝。
语法
structuredClone(value)
structuredClone(value, { transfer })
参数
- value
被克隆的对象。可以是任何结构化克隆支持的类型。 - transfer 可选
是一个可转移对象的数组,里面的 值 并没有被克隆,而是被转移到被拷贝对象上。
限制
但是也有一些限制
- 不允许克隆Error、Function和DOM对象,如果对象中含有,将抛出DATA_CLONE_ERR异常。
- 不保留RegExp 对象的 lastIndex 字段。
- 不保留属性描述符,setters 以及 getters(以及其他类似元数据的功能)。例如,如果4. 一个对象用属性描述符标记为 read-only,它将会被复制为 read-write。
- 不保留原形链。
兼容性
- Chrome >= 98
- FireFox >= 94
你好,看了你的网站,觉得很不错,期望与您互换友情链接
卡知识网
http://53go.cn/
如果同意的话,请给我internetyewu@163.com发个同意信息吧