克隆 
结构化克隆 
全局的 structuredClone() 方法使用结构化克隆算法将给定的值进行深拷贝。
该方法还支持把原始值中的可转移对象转移到新对象,而不是把属性引用拷贝过去。 可转移对象与原始对象分离并附加到新对象;它们不可以在原始对象中访问被访问到。
语法 
js
/**
 * @param {*} value 被克隆的对象。可以是任何结构化克隆支持的类型。
 * @param {*[]} transfer 是一个可转移对象的数组,里面的 值 并没有被克隆,而是被转移到被拷贝对象上。
 * @returns {*} 返回值是原始值的深拷贝。
 */
structuredClone(value);
structuredClone(value, { transfer });/**
 * @param {*} value 被克隆的对象。可以是任何结构化克隆支持的类型。
 * @param {*[]} transfer 是一个可转移对象的数组,里面的 值 并没有被克隆,而是被转移到被拷贝对象上。
 * @returns {*} 返回值是原始值的深拷贝。
 */
structuredClone(value);
structuredClone(value, { transfer });结构化克隆不支持哪些? 
- Function对象是不能被结构化克隆算法复制的;如果你尝试这样子去做,这会导致抛出 DATA_CLONE_ERR 的异常。
- 企图去克隆 DOM节点同样会抛出 DATA_CLONE_ERR 异常。
- 对象的某些特定参数也不会被保留 - RegExp对象的- lastIndex字段不会被保留
- 属性描述符、- setters以及- getters(以及其他类似元数据的功能)同样不会被复制。例如,如果一个对象用属性描述符标记为 read-only,它将会被复制为 read-write,因为这是默认的情况下。
- 原形链上的属性也不会被追踪以及复制。
 
结构化克隆能支持哪些? 
- Array
- ArrayBuffer
- Boolean
- DataView
- Date
- Error 类型(仅限部分 Error 类型)。
- Map
- Object 对象:仅限简单对象(如使用对象字面量创建的)。
- 除 symbol 以外的基本类型。
- RegExp:lastIndex 字段不会被保留。
- Set
- String
- TypedArray