Я пытаюсь изучить классы ES6 вместо того, как мы это делаем в настоящее время, используя средство Function.prototype. В настоящее время наш API выглядит следующим образом:Создайте класс ES6 из функции
var myclass = createClass('MyClass', {
test : function() {}
});
Мы перебираем объекта и применить эти свойства на функции, которые мы возвращаем, в основном красивее путь, чем сделать так, чтобы она больше рядный с другими языками программирования сортов:
Мы также кэшируем класс на объект, где имя является ключом, а функция является значением для использования в нашем приложении. Имя класса может быть помещено в пространство имен, так что вы можете иметь My.Cls
, и он будет разделяться на период, а затем кэшировать его на менеджер, но он также может быть получен через window.My.Cls
.
Изучая классы ES6, я не вижу, как я могу сохранить функцию createClass
. Хотелось бы что-то вроде:
function createClass(name, config) {
return class name config;
}
Я не ожидал, что это сработает, и это не так.
Два вопроса я здесь:
- Как я могу создать класс, используя переменную в качестве имени класса?
- Как создать класс и назначить свойства через аргумент объекта конфигурации?
Не уверен, что это будет возможно. Мы не планируем поддерживать createClass
, мы надеемся сохранить его сейчас и обновить наши «классы». Я хотел бы начать использовать классы ES6, но не сломать все приложение, но как бы долго мы не дошли до полного обновления.
Посмотрите объект 'Reflect'. – Bergi