Javascript ~ вызов функции внутри переменной - PullRequest
1 голос
/ 05 мая 2011

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

var CircuitBox= document.getElementById("QLCS")
var CircuitNumber = CircuitBox.selectedIndex;
var circuit = CircuitBox.options[CircuitNumber].value;

// This Variable takes on the functions name that id like to call       
circuit;

Ура! * * 1004

Ответы [ 2 ]

1 голос
/ 05 мая 2011

В свойствах объекта JavaScript можно получить доступ через его имя в виде строки, используя скобочную нотацию, например:

var propertyVal = myObj["propertyName"];

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

window[circuit](); 
0 голосов
/ 05 мая 2011

Я могу придумать два пути.

Вы можете попробовать window[circuit](), если это глобальная функция.Другой вариант - использовать eval, но eval - зло.Поэтому, чтобы избежать зла eval, лучшим способом может быть поддержка карты обработчиков:

var handlers = {
   someValue: function() {
      ...
   },
   otherValue: function() {
      ...
   }
};

На этой карте вы ассоциируете someValue и otherValue с анонимными функциями.Поэтому, если предположить, что в поле выбора содержатся параметры someValue и otherValue, соответствующая функция будет вызываться в зависимости от того, что они выбирают.

Тогда все, что вам нужно сделать, это handlers[circuit]().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...