Hallo Forum,
ich möchte eine 'variable Methode' aufrufen ... keine Ahnung, wie ich das besser formulieren kann. Daher erstmal folgend Quellcode:
import BaseModule from '../../../../javascripts/helpers/baseModule';
import forEach from '../../../../javascripts/dom/forEach';
export default class ShareLink extends BaseModule {
constructor(element) {
super(element, element.getAttribute('data-js-module'));
this.getElements([]);
this.bindEvents();
this.clickMethods = { facebook: 'handleFacebook' };
}
bindEvents() {
console.log('bindEvents()');
this.elements.self.addEventListener('click', this.handleClick.bind(this));
}
handleClick(event) {
console.log('handleClick()');
event.preventDefault(event);
const method = this.elements.self.dataset.jsType; // value: facebook
this.clickMethods[method]();
}
handleFacebook() {
console.log('handleFacebook()');
}
}
- Die Methode handleClick wird aufgerufen
- const method wird mit dem Wert 'facebook' belegt
...und mit this.clickMethods[method]();
versuche ich die methode handleFacebook. Das funktioniert so leider nicht ;(
Kann mir jemand nen Tipp geben, wie ich das vernünftig löse?