Задать вопрос

Как запустить фукцию по имени и передать параметр в виде объекта?

Сейчас использую такую конституцию:
Передаю изи php объект массив Data где есть function Name и в качестве параметра передаю сам массив, это не совсем безопасно, как можно запустить по другому.

eval(Data['function'].name).call(null, Data['function']);

Пробовал через window[Data['function'].name]
но к сожалению не хочет, так как сами функции у меня в других файлах в виде переменных let

пробовал так же new Function(`return ${Data['function'].name}()`)();
Но сюда нельзя передавать объект, соответственно вариант не подходит, потому функцию много и везде они получают в качестве параметра именно объект
  • Вопрос задан
  • 78 просмотров
Подписаться 1 Простой Комментировать
Помогут разобраться в теме Все курсы
  • Нетология
    Fullstack-разработчик на Python + нейросети
    20 месяцев
    Далее
  • Skillfactory
    Профессия Веб-разработчик
    12 месяцев
    Далее
  • Академия Eduson
    Fullstack-разработчик на JavaScript
    11 месяцев
    Далее
Решения вопроса 1
@MOtoroller1983 Автор вопроса
Кому понадобится

const functionName = 'MyFunction';
const Param = { 1: 'test', 2: 'work' }; 
new Function('params', `${functionName}.apply(null, [params])`)(Param);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы