2015-12-14 2 views
0

Я пытаюсь вызвать функцию, используя переменную с ее именем.Функция вызова Javascript - имя динамической переменной

Вот код:

var selectedFunc = 'func2'; 

var myModule = { 

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

    func1: function() { 
     //something here 
    } 

}; 

myModule.selectedFunc(); 

Я обычно делаю это:

myModule.func1(); 

, который будет работать, но я пытаюсь использовать переменную, чтобы определить это имя, которое не работает.

Как исправить эту проблему?

ответ

5

Вы можете использовать кронштейн обозначения:

myModule[selectedFunc](); 
+2

Конечно, вы не думаю, что это не было предложено до .. , – Amit

0

Использование Eval.

var selectedFunc = 'func2'; 

var myModule = { 

    func1: function() { 
     return "hello"; 
    }, 

    func2: function() { 
     return "world"; 
    } 

}; 

window.alert(eval("myModule." + selectedFunc + "()")); 
0

Вы могли бы назвать его, используя следующий синтаксис

setTimeout("myModule."+selectedFunc + "()", 0); 

Или даже с помощью Eval назвать его

eval("myModule." + selectedFunc).call(); 
Смежные вопросы