我有辅助类,要定义事件方法,该方法在更改某些值时被触发。
eg简化:
class HelperClass {
activeIndex = 0;
constructor(element) {}
...some computation methods...
}
当ActiveIndex从外部更改时,我需要发射事件。类似AddEventListener。当内部价值更改时,可以是从CLAS外部聆听。例如:
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...
);
可能是您需要Sometheng Line
https://developer.mozilla.org/en-us/docs/web/api/eventtarget
或https://nodejs.org/api/events.html#events_class_eventemitter如果您使用的是nodejs
您可以为对象属性定义设置器:
https://developer.mozilla.org/es/docs/web/javascript/referencia/objetos_globales/object/object/defineproperty
每次更改值时,它都会触发功能。
是香草javascript。