#javascript #reflection #ecmascript-6
#javascript #отражение #ecmascript-6
Вопрос:
Недавно я прочитал об улучшениях метапрограммирования ES6 (символы, отражение, прокси), и они действительно классные, но мне было трудно найти, как вы можете создавать экземпляры типа программно с помощью кода, подобного C #, с помощью типа.GetType(строка).
Есть ли эквивалентная опция в ES6?
Суть в том, что в идеале, если я хочу использовать отражение для вызова конструктора в классе, я хотел бы также иметь тип программно.
function commandFactory(name : string, args : CommandArgs) : Command {
let commandType = Type.GetType(name); /* theoretically speaking*/
return Reflect.construct(commandType, [args]);
}
Заранее спасибо!
Комментарии:
1. можете ли вы добавить несколько примеров pseuco-кода того, чего вы хотите достичь с помощью отражения в ES6?
2. Обновил описание примером.
3.насколько мне известно, в ES6 нет способа получить данные отражения из строки, вместо этого вам придется использовать функцию конструктора. Затем вы можете сделать
Reflect.construct(constructor, args);
ponyfoo.com/articles/es6-reflection-in-depth