Как вернуть объект как функцию? - PullRequest
0 голосов
/ 16 апреля 2019

Я использую 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]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...