我需要将__proto__
(as found here)分配给通过web worker postMessage()传递的对象。我找到了this solution,但它在每次调用时创建了一个类,这让我觉得效率低下。有没有更有效的方法来做到这一点?
ps - 这应该是非常安全的,因为它将方法重新连接到在序列化中删除之前具有精确__proto__
的对象。
答案 0 :(得分:1)
我找到了这个解决方案,但它在每次调用时创建了一个类,这让我觉得效率低下
此调用new newClass()
在一般意义上效率不高。仅仅调用new Class
只需要更多的东西,即创建一个新的obj用于this
(简单为{}
)和设置{{1} }在返回的对象中为newClass.prototype
。
有更有效的方法吗
与__proto__
相比......是非常如此,只需:
obj.__proto__ = (<any>(new newClass())).__proto__;
请注意,这会剥夺obj.__proto__ = newClass.prototype
设置newClass
上任何成员(即班级成员)的机会。但是如果你已经在this
上拥有它们,那么你就不需要经历构造函数开销了。