大家好我可以在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值作为功能名称!!所以我需要知道我该怎么做?感谢所有
答案 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
对象中的函数。