我正在尝试使用带有名称的变量来调用函数。
以下是代码:
var selectedFunc = 'func2';
var myModule = {
func1: function() {
//something here
},
func1: function() {
//something here
}
};
myModule.selectedFunc();
我通常会这样做:
myModule.func1();
哪个会起作用,但我正在尝试使用该变量来定义它的名称,这个名称无效。
如何解决此问题?
答案 0 :(得分:5)
您可以使用括号表示法:
myModule[selectedFunc]();
答案 1 :(得分:0)
使用eval。
var selectedFunc = 'func2';
var myModule = {
func1: function() {
return "hello";
},
func2: function() {
return "world";
}
};
window.alert(eval("myModule." + selectedFunc + "()"));
答案 2 :(得分:0)
您可以使用以下语法
来调用它setTimeout("myModule."+selectedFunc + "()", 0);
甚至使用eval来调用它
eval("myModule." + selectedFunc).call();