2016-03-13 2 views
0

Можно ли условно вызывать функции в javascript с помощью параметра string, чтобы указать имя функции, которая должна быть вызвана?Абстрактный способ вызова функций с помощью javascript. Это можно сделать?

function test1(){ 
    // something 
} 

function test2(){ 
    // Something 
} 
function test3(){ 
    // something 
} 
var callString = 'test1' // test1 or test2 or test3 

callString(); 
/* Obviously this is an error, but 
coul this be formatted so that JS, 
could call the function of callString?*/ 
+1

да, это есть. Итак, каков ваш [* актуальный * вопрос] (http://meta.stackexchange.com/a/66378)? –

ответ

0

Несомненно, если вы правильно структурируете его. Вы можете использовать массив типа (или кронштейны) обозначения:

var functions = { 
    test1: function() {}, 
    test2: function() {}, 
    test3: function() {} 
} 

var callString = 'test1'; 
functions[callString](); // run functions.test1() 

callString = 'test2'; 
functions[callString](); // run functions.test2() 
0

Если functions в global context, так как каждый global function или global variable является key из window объекта.

function test1() { 
 
    alert('Hi!'); 
 
} 
 

 
function test2() { 
 
    alert('Hi!'); 
 
} 
 

 
function test3() { 
 
    alert('Hi!'); 
 
} 
 
var callString = 'test1'; 
 

 
window[callString]();

+2

@Downvoter, позаботьтесь объяснить причину .... ТАК, что я могу улучшить ответ ... – Rayon

Смежные вопросы