Я использую module.exports, чтобы получить нужные мне классы, в трех из них мне нужно вызвать конструктор раньше, но затем они возвращают объект вместо функции.
Как я могу заставить их возвращать функцию, чтобы классы можно было использовать так же, как другие?
Handlers.js:
module.exports = {
Class: new (require("./Class"))(),
OtherClass: require("./OtherClass"),
...
}
index.js:
const handlers = require("../Handlers")
// This is called dynamically, which is why I'm using the module.exports
// handler is from a JSON object, let's say file is Class and event is a method within that class
handlers[handler.file][handler.event](data, arg2)
Я хочу, чтобы первый класс имел тот же тип, что и второй класс. В настоящее время первый является объектом, а второй - функцией. Я должен передать параметры в класс, так что это должна быть функция.
Вывод: (console.log of Handlers.js)
Class: Class { ... }
OtherClass: [Function: OtherClass]