Способы вызвать функцию JavaScript использование значения строковой переменной? [дубликат]

Лучший способ состоит в том, чтобы использовать Ajax (можно найти простое учебное руководство на этой странице Tizag ). Причина состоит в том, что любая другая техника, которую можно использовать, требует большего количества кода, она, как гарантируют, не будет работать, перекрестный браузер без переделывает, и требует, чтобы Вы использовали больше клиентской памяти путем открытия скрытых страниц в кадрах передающие URL, анализирующие их данные и закрывающие их. Ajax является способом войти в эту ситуацию. То, что мои два года JavaScript тяжелый разговор разработки.

16
задан Mark Biek 17 July 2009 в 16:17
поделиться

3 ответа

Мне нравится. Я бы, вероятно, создал простую вспомогательную функцию вроде следующей:

function runFunction(name, arguments)
{
    var fn = window[name];
    if(typeof fn !== 'function')
        return;

    fn.apply(window, arguments);
}

//If you have following function

function foo(msg)
{
    alert(msg);
}

//You can call it like

runFunction('foo', ['test']); //alerts test.
32
ответ дан 30 November 2019 в 16:30
поделиться

Лично я бы не стал беспокоиться даже о вспомогательной функции

  window[someKey]('test')

.

Однако я бы вообще не стал поддерживать набор возможных функций для вызова в глобальной области видимости в любом случае . Поэтому я бы использовал более общий шаблон: -

 obj[someKey]('test')

где obj может быть this , свойством this или переменной из замыкания.

6
ответ дан 30 November 2019 в 16:30
поделиться

Вы можете использовать eval (str)

eval('foo();');

, используйте это с особой осторожностью.

0
ответ дан 30 November 2019 в 16:30
поделиться
Другие вопросы по тегам:

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