对于通常使用字符串作为键的对象,我们可以使用
JSON.parse(JSON.stringify(myObject))
。
其他
如何使用 Symbol()
作为键深度克隆对象?
注意:
structuredClone({[Symbol()]: 42})
返回{}
,它也不可用
使用
Object.getOwnPropertySymbols
迭代和复制符号(如果需要,可以实现递归):
const symbol = Symbol();
const obj = {[symbol]: 42};
const cloned = structuredClone(obj);
for(const symbol of Object.getOwnPropertySymbols(obj)){
cloned[symbol] = obj[symbol];
}
console.log(cloned[symbol]);