Javascript调用函数 - 动态变量名
问题描述:
我试图调用一个函数使用它的名称的变量。Javascript调用函数 - 动态变量名
下面的代码:
var selectedFunc = 'func2';
var myModule = {
func1: function() {
//something here
},
func1: function() {
//something here
}
};
myModule.selectedFunc();
我通常会做到这一点:
myModule.func1();
这将工作,但我试图使用变量来定义它的名字,这是行不通的。
我该如何解决这个问题?
答
你可以用括号标记:
myModule[selectedFunc]();
答
使用eval。
var selectedFunc = 'func2';
var myModule = {
func1: function() {
return "hello";
},
func2: function() {
return "world";
}
};
window.alert(eval("myModule." + selectedFunc + "()"));
答
你可以把它用下面的语法
setTimeout("myModule."+selectedFunc + "()", 0);
甚至使用eval叫它
eval("myModule." + selectedFunc).call();
你肯定没想到这还没有被问过.. 。 – Amit