我想知道将“新”类附加到现有实例的最佳方法是什么。
例如:我有一个“worker”类,它需要“扩展”到现有的 IPC 类实例,因此它可以通过 ipc 通道进行通信。
class Worker {
constructor(ipc) {
this.__proto__ = ipc;
this.__proto__.constructor = Worker;
}
}
然后我可以像这样使用它:
const worker = new Worker(myCurrentIpc);
worker.send('blabla') /* Calls super instance ipc method */
这是不好的做法,因为它会降低性能.. https://developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf
在这种情况下,“发送”方法将被调用数百万次。
所以在这样的用例中,你会推荐什么?
我还可以在 Worker 实例中再次创建每个函数,然后在该方法中调用 ipc.func() ,但这也感觉像是一种反模式。
谢谢
澄清:
我有一个“主机”工作人员(主)..它有一个已经初始化的 IPC(节点-ipc)实例..
每当我创建一个工人“孩子”时,我想使用(已经存在的)父 IPC 实例来连接到子工人..
所以真的很好,当我创建一个新的 Worker({ipc:ipc}) 时,我可以将 worker.prototype 附加到 IPC 实例。因此我可以只做 worker.send() 和 IPC 实例知道它来自 main->child 频道..