Мне интересно, как лучше всего прикрепить «новый» класс к существующему экземпляру.
Например: у меня есть «рабочий» класс, который необходимо «расширить» до существующего экземпляра класса 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 */
Это плохая практика, так как она убивает производительность. /developer.mozilla.org/nl/docs/Web/JavaScript/Reference/Global_Objects/Object/setPrototypeOf
И в этом случае метод send будет вызываться миллионы раз.
Итак, в таком случае использования, что бы вы порекомендовали?
Я также могу снова создать каждую функцию в экземпляре Worker, а затем вызвать ipc.func() в этом методе, но это также похоже на антишаблон.
Спасибо
Пояснение:
У меня есть один рабочий «хост» (основной). У него есть уже инициализированный экземпляр IPC (node-ipc).
Когда я создаю дочерний рабочий процесс, я хочу использовать (уже существующий) родительский экземпляр IPC для подключения к дочернему рабочему.
Так что было бы очень хорошо, когда бы я ни создавал нового Worker({ipc:ipc}), я мог бы прикрепить worker.prototype к экземпляру IPC. Таким образом, я могу просто сделать worker.send() и экземпляр IPC знает, что он идет с основного-> дочернего канала..
ipc
другим классом или просто экземпляром класса? - person Kroltan   schedule 01.10.2016