Есть ли способ создать конструктор в уже существующем конструкторе? - PullRequest
0 голосов
/ 05 мая 2020

У меня есть следующая функция, которая действует как базовый конструктор:

function Foo() = {}
...
exports Foo

Это пустой конструктор, который используется другими функциями, которые я не хочу менять. Кроме того, Foo экспортируется только из файла.

Теперь мне нужно создать другой конструктор, возможно, внутри Foo.

Вот что я бы получил с enum в качестве автономного конструктора. Но как сделать его частью Foo?

function enum(data) {
    this.data = data
}

enum.prototype.getVal() { return this.data; }

var obj = new enum(5);
obj.getVal();

1 Ответ

0 голосов
/ 05 мая 2020

Совершенно безумная догадка из ваших сообществ.

экспорт из файла не представляет особой проблемы. Если вы просто используете Foo в качестве пространства имен для «зависания» функций, вы можете сделать это:

Enum. js

// all constructors should be capitalized
function Enum() { }
Enum.prototype.whatever ...

exports Enum

Foo. js

const Enum = require('./Enum');

// it's unclear why `Foo` is even a function to be honest
function Foo() { }

Foo.Enum = Enum;

exports Foo

someOtherFile. js

const Foo = require('./Foo');

const myEnumInstance = new Foo.Enum();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...