heinetz: variabler Methodenaufruf

Beitrag lesen

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?

beste gruesse, heinetz