我有助手类,并希望定义事件方法,当某些值更改时触发。Javascript创建事件方法
如简化:
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....)
我不想使用外部库。喜欢具有原生特征的香草代码。
谢谢。
UPDATE:SIMPLE SOLUTION
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...
);
defineProperty是罚款时,我想打电话从自我类的方法,同样的功能,例如ES6二传手吧? 。但我想创建可从外部访问的方法事件。 – rado
然后它不会是一个方法! – lilezek
我创建了快速解决方案。不是最好的,但工程。我做了方法wchith采取另一个功能,我可以从外部打电话的功能。类似这样的:onValueChange(func){this.callbackMethod = func} – rado