А кому они тогда нужны (опять же, из триады)? И кто с ними работает? Кто эти служебные данные генерирует и куда передает?
export class DomListener { // abstract class
$root: Dom
listeners: Array<string>
constructor($root: Dom, listeners = []) {
if (!$root) {
throw new Error(`no ${$root}`)
}
this.$root = $root
this.listeners = listeners
}
initDOMListeners() {
this.listeners.forEach(list => {
const method = capitalize(list)
this[method] = this[method].bind(this)
this.$root.on(list, this[method])
})
}
export class Scale extends SliderComponent {
static className = 'slider__scale'
constructor(emitter, $root, values) {
super(emitter, $root, {
name: 'scale',
listeners: ['click']
}, values)
}
Onclick() {} // Этот метод доступен благодаря initDomListeners
Контроллер - презентер.