Я работаю над своим первым проектом Node.js и столкнулся с проблемой ООП, которую я не знаю, как решить в Node.js.
У меня есть модуль A:
module.exports = A;
function A() {
}
A.prototype.method = function() { return "A";};
//other methods...
и пара других модулей (скажем, B и C), которые реализуют тот же «интерфейс», что и A.
Теперь у меня есть модуль X:
module.exports = X;
function X(impl) {
//choose A, B, or C based on value of impl
}
Так что вопросКак мне реализовать X для того, чтобы иметь возможность:
var X = require("x");
var impl = new X("A");
impl.method(); //returns "A"
Я считаю, что prototype
и __proto__
будут вовлечены?
Редактировать: Чего я пытаюсь достичьявляется реализацией загрузки A, B или C, основанной на некотором строковом значении (переменная ENV) через стандартизированный интерфейс new X()
, а затем доступ к методам A (B, C ...) через этот экземпляр X.