我在想什麼最好的方法是將「新」類附加到現有實例。ES6 - 將類原型附加到單身人士
例如:我有一個'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實例連接到子工。
所以這將是非常好的,th在我創建一個新的Worker({ipc:ipc})時,我可以將worker.prototype附加到IPC實例。因此,我可以執行worker.send(),並且IPC實例知道它從main- >子頻道..
是'ipc'本身另一個類,或者只是一個普通的對象或類實例? – Kroltan
ipc是已經初始化的類實例 – DutchKevv
您的父級工作者 - 子工作者關係聽起來不像子類關係。你應該在這裏贊成組合繼承。 – Bergi