是否有一种自动方法可以通过删除对象中的所有方法来使任意JavaScript对象结构化为可克隆状态?
在我的特定用例中,我正在Web工作者中创建Three.js BufferAttribute对象,并希望将它们传输到主线程。
我目前的方法是在网络工作者中创建一个具有 成员与原始对象相同,只是没有方法。该对象被转移到主线程,并在主线程中再次创建一个适当的three.js BufferAttribute对象,并为其分配属性。
答案 0 :(得分:2)
不是自动,但是您可以使用Object.fromEntries
,Object.entries
和filter
:
const objectWithoutMethods = Object.fromEntries(
Object.entries(originalObject).filter(([k, v]) => typeof v !== "function")
);
Object.fromEntries
和Object.entries
相对较新,但很容易填充。