Экспорт классов ES6 с предварительным созданием экземпляров с помощью new() и без них

Я читал о модулях ES6 и заметил, что классы либо экспортируются как есть, либо после newобработки.

Например:

class Class1 extends SomeOtherClass {
   constructor() {
     super();
   }
   //Class1 methods and data here
}
export default new Class1();

.. пока в Class2.js:

class Class2 extends YetAnotherClass {
   constructor() {
     super();
   }
   //Class2 methods and data here
}
export default Class2;

Справедливо предположить, что в случае с Class1 вы создали синглтон, а с Class2 после его импорта вы можете по желанию создавать его независимые экземпляры? Если да, то есть ли другие сценарии использования new при экспорте класса или нет?


person jkj2000    schedule 15.02.2018    source источник
comment
Итак, не используйте new class для создания синглетонов. Когда-либо.   -  person Bergi    schedule 15.02.2018


Ответы (1)


Использование new() создает новый объект из функции-конструктора, и если вы вернете его, вы вернете только объект. Не используя его, вы вместо этого возвращаете саму функцию.

person Feathercrown    schedule 15.02.2018