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

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

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

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

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

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

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

Войти через центр авторизации
Похожие вопросы