使对象结构化可克隆
Make object structured cloneable
是否有一种自动方法可以通过从对象中删除所有方法来使任意 JavaScript 结构化的对象可克隆?
在我的特定用例中,我正在 Web Worker 中创建 three.js BufferAttribute 对象,我想将它们传输到主线程。
我目前的方法是在 web worker 中创建一个新对象,该对象具有
与原始对象相同的成员,只是没有方法。该对象被传输到主线程,在主线程中我再次创建一个适当的 three.js BufferAttribute 对象并将属性分配给它。
不是自动,但您可以使用Object.fromEntries
, Object.entries
, and filter
:
const objectWithoutMethods = Object.fromEntries(
Object.entries(originalObject).filter(([k, v]) => typeof v !== "function")
);
Object.fromEntries
和 Object.entries
相对较新,但很容易填充。
是否有一种自动方法可以通过从对象中删除所有方法来使任意 JavaScript 结构化的对象可克隆?
在我的特定用例中,我正在 Web Worker 中创建 three.js BufferAttribute 对象,我想将它们传输到主线程。
我目前的方法是在 web worker 中创建一个新对象,该对象具有 与原始对象相同的成员,只是没有方法。该对象被传输到主线程,在主线程中我再次创建一个适当的 three.js BufferAttribute 对象并将属性分配给它。
不是自动,但您可以使用Object.fromEntries
, Object.entries
, and filter
:
const objectWithoutMethods = Object.fromEntries(
Object.entries(originalObject).filter(([k, v]) => typeof v !== "function")
);
Object.fromEntries
和 Object.entries
相对较新,但很容易填充。