Javascript调用函数 - 动态变量名

时间:2015-12-14 21:57:33

标签: javascript

我正在尝试使用带有名称的变量来调用函数。

以下是代码:

var selectedFunc = 'func2';

var myModule = {

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

    func1: function() {
       //something here 
    }

};

myModule.selectedFunc();

我通常会这样做:

myModule.func1();

哪个会起作用,但我正在尝试使用该变量来定义它的名称,这个名称无效。

如何解决此问题?

3 个答案:

答案 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();