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

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

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

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

пробовал так же new Function(`return ${Data['function'].name}()`)();
Но сюда нельзя передавать объект, соответственно вариант не подходит, потому функцию много и везде они получают в качестве параметра именно объект
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
@MOtoroller1983 Автор вопроса
Кому понадобится

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

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

Похожие вопросы
23 нояб. 2024, в 01:31
1000 руб./за проект
23 нояб. 2024, в 00:16
2000 руб./за проект
22 нояб. 2024, в 23:55
3000 руб./за проект