如何在JavaScript中将var值名称用作函数名称

时间:2016-04-19 19:56:19

标签: javascript

大家好我可以在JavaScript中使用value作为函数名吗?我有一些具有相同名称输入值的函数,例如:

var ta = $('li.ramin.active').attr("id");
var act = $('input[name="'+ta+'_acceptdeny"]:checked').val();


act(Freq, meID);  // my question is

以这种方式我有错误" Uncaught TypeError:act不是函数"是的我知道行为不是一个功能,但我想使用var act值作为功能名称!!所以我需要知道我该怎么做?感谢所有

3 个答案:

答案 0 :(得分:0)

您可以使用window[act](Freq, meId)

感谢Justin Niessner指出这只有在全局范围内定义act时才有效。您可以使用eval,但这通常被认为是非常不安全的。

答案 1 :(得分:0)

没有什么可以阻止你重新宣布行为作为一个函数,你只会失去对最初声明的行为的所有引用。

答案 2 :(得分:0)

不是将值用作函数名,而是将函数放入对象中,并将值用作对象的键。

var myFunctions = {
    'func1': function() { .... },
    'func2': function() { .... },
    // and so on
};

var ta = $('li.ramin.active').attr("id");
var act = $('input[name="'+ta+'_acceptdeny"]:checked').val();

myFunctions[act](Freq, meID);

这样做更好,因为您无法意外调用应用程序不打算使用的函数,它只能调用myFunctions对象中的函数。