structuredClone
时间: 2024-01-13 08:03:44 浏览: 22
Structured clone是浏览器中实现的一种序列化算法,用于在Web Workers、IndexedDB和postMessage()等场景中传递非常规对象。它可以将JavaScript对象及其任意深度的属性和方法转换为可传输的格式,然后再将其还原回原始对象。Structured clone支持传输的数据类型包括原始类型、数组、普通对象、日期对象、正则表达式对象、Blob对象、File对象、FileList对象、ImageData对象、Map对象、Set对象以及可序列化的TypedArray对象等。但是它不支持传输的数据类型包括函数、Symbol、Error对象、DOM节点、WeakMap对象和WeakSet对象等。
相关问题
Structuredclone
Structuredclone是一种用于深拷贝对象的算法。它是在HTML规范中定义的,并且可以通过使用structuredClone函数来执行。structuredClone函数可以接受一个要克隆的值作为参数,并可选地指定要转移的对象。克隆的值可以是任何结构化克隆支持的类型,包括字符串、数字、布尔值、日期、正则表达式、数组、对象和Blob等。当执行structuredClone时,它会创建一个与原始对象相同但独立的副本,即使原始对象发生变化,副本也不会受到影响。但需要注意的是,Function对象是不能被结构化克隆算法复制的,尝试这样做会导致抛出DATA_CLONE_ERR异常。所以在使用structuredClone函数时,需要注意避免克隆包含Function对象的值。
js structuredClone
在JavaScript中,structuredClone方法用于创建一个对象的深拷贝。它可以复制原始值,如布尔值、数字和字符串,以及大多数内置对象,如数组和正则表达式。例如,可以使用structuredClone方法复制一个布尔值、数字或字符串,并使用typeof操作符检查其类型。
然而,需要注意的是,structuredClone方法在某些情况下可能会报错。当尝试复制某些对象时,可能会出现错误。例如,当尝试复制一个数组时,可能会出现错误消息"Failed to execute 'structuredClone' on 'Window': [object Array] could not be cloned."。
总之,JavaScript的structuredClone方法可以用于复制原始值和大多数内置对象,但在某些情况下可能会报错。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* [JS中对象深拷贝:structuredClone()](https://blog.csdn.net/songjungang/article/details/125373543)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
- *3* [Babel JS使用structuredClone/Array.at() 等 es2021新语法](https://blog.csdn.net/qq_35459724/article/details/123078364)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"]
[ .reference_list ]