J'ai une classe auxiliaire et je veux définir une méthode événementielle qui est déclenchée quand une valeur est modifiée.Javascript create event méthode
par exemple simplifier:
class HelperClass {
activeIndex = 0;
constructor(element) {}
...some computation methods...
}
et je dois appliquer l'événement lorsque activeIndex passe de l'extérieur. Quelque chose comme addEventListener. Quand la valeur interne est modifiée, elle peut être écoutée en dehors des classes. Par exemple:
const obj = new HelperClass(element);
obj.onActiveIndexChange((event, activeIndex) => ...something...)
or
obj.on('activeIndexChange', (event, activeIndex) => ....something....)
Je ne veux pas utiliser des bibliothèques externes. Préférez le code vanilla avec des fonctionnalités natives.
Merci.
MISE À JOUR: SOLUTION SIMPLE
class HelperClass {
activeIndex = 0;
addEventListener(eventName, func) {
this[
`on${eventName.substr(0, 1).toUpperCase()}${eventName.substr(1)}`
] = func;
}
onActiveIndexChange(activeIndex) {}
}
this.onActiveIndexChange (newValue) appelant après avoir changé la valeur
et ensuite à l'extérieur définissant:
objInstance.addEventListener('activeIndexChange', (activeIndex) =>
...myCustomCodePassed in callback...
);
DefineProperty est très bien quand je veux appeler la méthode de self classe, la fonctionnalité même comme poseur ES6 droite? . Mais je veux créer un événement de méthode accessible de l'extérieur. – rado
Alors ce ne serait pas une méthode! – lilezek
Je crée une solution rapide. Pas le meilleur, mais ça marche. J'ai fait la méthode wchith prend une autre fonction et cette fonction que je peux appeler de l'extérieur. Quelque chose comme ceci: onValueChange (func) {this.callbackMethod = func} – rado