【发布时间】:2017-09-21 20:55:04
【问题描述】:
我有辅助类,想定义一些值改变时触发的事件方法。
例如简化:
class HelperClass {
activeIndex = 0;
constructor(element) {}
...some computation methods...
}
当从外部更改 activeIndex 时,我需要触发事件。像 addEventListener 之类的东西。内部值何时更改时,可以从班级外部收听。 例如:
const obj = new HelperClass(element);
obj.onActiveIndexChange((event, activeIndex) => ...something...)
or
obj.on('activeIndexChange', (event, activeIndex) => ....something.... )
我不想使用外部库。更喜欢带有原生特性的原版代码。
谢谢。
更新:简单的解决方案
class HelperClass {
activeIndex = 0;
addEventListener(eventName, func) {
this[
`on${eventName.substr(0, 1).toUpperCase()}${eventName.substr(1)}`
] = func;
}
onActiveIndexChange(activeIndex) {}
}
this.onActiveIndexChange(newValue) 更改值后调用
然后在定义之外:
objInstance.addEventListener('activeIndexChange', (activeIndex) =>
...myCustomCodePassed in callback...
);
【问题讨论】:
标签: javascript events event-handling