Как запустить функцию через 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();