Новый синтаксис классов позволяет объявлять методы через 'new'?
Например вместо
function Foo(param) {
return function () {
...
};
}
class Bar {
...
}
Bar.prototype.baz = new Foo;
что-нибудь вроде
class Bar {
baz = new Foo;
}
Согласно спецификации ES6, тело класса может содержать только набор методов.
Иными словами, спецификация не позволяет вам определять свойства экземпляров, через конструкцию class.
Я вижу два выхода из ситуации:
Использовать прототип в явном виде
class Bar {
// ...
}
Bar.prototype.baz = Foo('baz');
Привязывать метод baz к каждому экземпляру Bar через конструктор:
function Foo(param) {
return function () {
// ...
};
}
// Будем использовать один экземпляр функции для всех Bar,
// чтобы сэкономить немного памяти.
var fooInstance = Foo('baz');
class Bar {
constructor() {
this.baz = fooInstance;
}
}
Ответ на твой вопрос ДА! Сущности классов можно объявлять через new
Судя по твоему коду ты используешь прототипное наследование, в es6 это можно сделать через наследование
class Foo {}
class Bar extends Foo {}
и ты сможешь использовать все методы класса Foo.
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости