Как запустить функцию через dataset?

Помогите пожалуйста. Вот есть строка из HTML <button data-proBut="emailPro">Кнопка</button> Я получаю через event.target.dataset.probut = "emailPro" и хочу запустить его в виде функции в JS, через addEventListener emailPro() .Но у меня не выходит:( Запускается через метод eval(), но для меня это не совсем выход. Думаю, что контекст просто ссылается на DOM страницу из-за этого и не запускается. Но до победы дойти не получается. Вот тестовый кусочек кода.

function Menu(elem) {
  elem.addEventListener("click", (e) => {
    function emailPro() {
      console.log("asdasda");
    }
    let a = e.target.dataset.probut;

    
  });
}

new Menu(formaPro);


Ответы (1 шт):

Автор решения: Алексей Шиманский

Наглядный пример как из строкового имени функции вызвать её:

let functionName = 'test';

function test() {
    alert('hello');
}

let func = new Function(`${functionName}()`);
func();

→ Ссылка