В настоящее время в ES5 многие из нас используют следующий шаблон в фреймах для создания классов и переменных класса, что удобно:
// ES 5
FrameWork.Class({
variable: 'string',
variable2: true,
init: function(){
},
addItem: function(){
}
});
В ES6 вы можете создавать классы изначально, но нет возможности иметь переменные класса:
// ES6
class MyClass {
const MY_CONST = 'string'; // <-- this is not possible in ES6
constructor(){
this.MY_CONST;
}
}
К сожалению, вышеупомянутое не будет работать, поскольку классы могут содержать только методы.
Я понимаю, что я могу this.myVar = true
в constructor
... но я не хочу "мусор" моего конструктора, особенно когда у меня есть 20-30 + params для более крупного класса.
Я думал о многих способах решения этой проблемы, но пока не нашел хороших. (Например: создайте обработчик ClassConfig
и передайте объект parameter
, который объявляется отдельно от класса. Затем обработчик будет прикреплен к классу. Я думал о WeakMaps
также как-то интегрироваться.)
Какими идеями вы должны справиться с этой ситуацией?