JS 深拷贝终结者 structuredClone

JS 深拷贝终结者 structuredClone

小小孩
2023-08-30 / 1 评论 / 143 阅读 / 正在检测是否收录...
温馨提示:
本文最后更新于2023年08月30日,已超过242天没有更新,若内容或图片失效,请留言反馈。
之前的 JS 数据深拷贝,都是要么递归要么是利用 MessageChannel 来实现深克隆,现在终结者来了,JS 原生支持的函数 structuredClone ,可以实现数据深拷贝

StructuredClone API

structuredClone 是结构化拷贝算法的实现,能够实现几乎对所有数据类型的深拷贝。

语法

structuredClone(value)
structuredClone(value, { transfer })

参数

  • value
    被克隆的对象。可以是任何结构化克隆支持的类型。
  • transfer 可选
    是一个可转移对象的数组,里面的 值 并没有被克隆,而是被转移到被拷贝对象上。

限制

但是也有一些限制

  1. 不允许克隆Error、Function和DOM对象,如果对象中含有,将抛出DATA_CLONE_ERR异常。
  2. 不保留RegExp 对象的 lastIndex 字段。
  3. 不保留属性描述符,setters 以及 getters(以及其他类似元数据的功能)。例如,如果4. 一个对象用属性描述符标记为 read-only,它将会被复制为 read-write。
  4. 不保留原形链。

兼容性

  • Chrome >= 98
  • FireFox >= 94
0

评论 (1)

取消
  1. 头像
    大流量卡
    Windows 7 · Google Chrome

    你好,看了你的网站,觉得很不错,期望与您互换友情链接

    卡知识网
    http://53go.cn/

    如果同意的话,请给我internetyewu@163.com发个同意信息吧

    回复