javascript - `Math` 可以按照结构化克隆算法克隆吗?

标签 javascript google-chrome indexeddb

以下内容不会在 Chrome 中引发 DataCloneError DOMException:

self.postMessage(Math, '*');

这是 structured cloning algorithm 的预期行为吗? ?

它正在 IndexedDB test 中使用(当前缺乏失败导致测试将数学视为可克隆(尽管无效)的键路径 key )所以我很好奇......

最佳答案

Math 的函数属性不可枚举(请参阅 herehere ),因此它们将被 StructuredClone 跳过。 .

Object.getOwnPropertyDescriptor(Math, 'abs').enumerable

在上面注释中的 Beth 示例中,func 最终出现在原型(prototype)上,因此它不是“自己的属性”,因此也被忽略。

看起来像是 FF 中的一个错误。

关于javascript - `Math` 可以按照结构化克隆算法克隆吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41758510/

相关文章:

javascript - 为什么这会导致串联而不是将两个数字相加?

javascript - Node.js Socket.IO "Uncaught TypeError: Object #<Server> has no method ' 关闭'"

javascript - 找出 JS 中的哪个文件/行正在更改元素的文本

http - 为什么浏览器在刷新时会向同一个页面发送两个请求?

indexeddb - IndexedDB 请求或事务在此时发送

java - 如何在GWT中从javascript获取返回类型 'any'到java? (泛型类型传递)

updates - 使用 Dexie,如何从表中所有对象的数组字段中删除值?

javascript - 如何使用javascript动态创建表单?

javascript - 多次启动和停止相同的间隔

javascript - javascript 何时违背 promise 或对象被垃圾收集