Как вызвать функцию со строкой внутри объекта? - PullRequest
0 голосов
/ 06 ноября 2019

Мне нужно вызвать функцию из объекта со строкой. Например:

type = 'human'

json: {
    action: 'run',
    type: this.type, //<- Here I want to call a function call 
    'Human', or whatever value has the variable type.
}

В основном я хочу проанализировать строку и вызвать функцию, которая соответствует строке.

Это для угловых. Я пытаюсь использовать имя окна ['function'], но оно под углом говорит, что это не функция.

Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 ноября 2019

Обычно мы разбираем ключ для вызова соответствующей функции

0 голосов
/ 06 ноября 2019

Итак, я предполагаю, что вы имеете в виду, что у вас есть объект со свойством, и значением этого свойства также является имя функции, которую вы хотите вызвать.

Например, возможно,у вас есть массив объектов:

const obs = [{func:'x',val:2}, {func:'y',val:3}];

И вы хотите перебрать эти объекты и, для первого, вызвать функцию 'x', а для второго вызвать функцию 'y'.

Один из способов сделать это состоит в том, чтобы ваши функции были частью объекта

const functions = {
  x: function(val) {
    console.log('inside function x');
    console.log(val);
  },
  y: function(val) {
    console.log('inside function y');
    console.log(val);
  }
}

Затем вы можете сделать что-то вроде этого

obs.forEach(object => functions[object.func](object.val));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...