Javascript调用函数 - 动态变量名

问题描述:

我试图调用一个函数使用它的名称的变量。Javascript调用函数 - 动态变量名

下面的代码:

var selectedFunc = 'func2'; 

var myModule = { 

    func1: function() { 
     //something here 
    }, 

    func1: function() { 
     //something here 
    } 

}; 

myModule.selectedFunc(); 

我通常会做到这一点:

myModule.func1(); 

这将工作,但我试图使用变量来定义它的名字,这是行不通的。

我该如何解决这个问题?

你可以用括号标记:

myModule[selectedFunc](); 
+2

你肯定没想到这还没有被问过.. 。 – Amit

使用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();