Я украшаю класс, чтобы предоставить аргументы его конструктору, проблема возникает, когда я пытаюсь создать подкласс этого класса:
@decorate('foo', 'bar')
class Foo {
constructor(foo, bar) {}
}
class Bar extends Foo {}
function decorate(foo, bar) {
return function(ctor) {
return ctor.bind(null, foo, bar);
};
}
Вышеупомянутое не будет работать из-за контекста null
, переданного конструктору (по крайней мере, я думаю, что это корень проблемы). При использовании с Babel возникает следующая ошибка: «Прототип объекта может быть только объектом или нулем: не определено».
Есть ли способ украсить родительский класс и расширить дочерний?
new
туда. Если вашfunction(ctor)
выглядит какreturn function() { return new ctor(foo, bar); }
, он работает. - person raina77ow   schedule 03.02.2016