Создайте экземпляр класса, который находится в другом файле, не создавая новую переменную - PullRequest
2 голосов
/ 04 апреля 2020

У меня есть файл, который содержит это:

// filename "Test1"
module.exports = class Test {
    constructor() {
        console.log('Instancied !');
    }
}

У меня есть второй файл, который содержит это

// filename "Test2"
const Test = require('./Test1');

const testInstance = new Test();

Есть ли способ упростить это, чтобы создать класс в та же строка, что и требуется?
Это не работает, но я думаю, что это может выглядеть так: const testInstance = new (require('./Test1'));

Ответы [ 2 ]

3 голосов
/ 04 апреля 2020

require('./Test1') возвращает определение класса. Таким образом, у вас есть правильная идея, вам просто не хватает пары ():

const testInstance = new (require('./Test1'))();
2 голосов
/ 04 апреля 2020

Это лучшее, что я могу придумать:

// Test1
class Test {
    constructor() {
        console.log('Instancied !');
    }
}

module.exports = () => new Test();

// Test2
const testInstance = require('./Test1')();

Решает ли это вашу проблему?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...