2015-09-25 2 views
2

Я хочу знать, как вызвать функцию со строковым значениемJavascript - Как вызвать любую функцию со строкой?

В некоторых других вопросах, я нашел это: window["functionName"](arguments);, и я предполагаю, что не работаю причина мои функции не являются глобальными, и я не хочу их быть глобальным.

У меня есть пример здесь:

(function ($) { 
    "use strict"; 
    var testing, 
    showMe; 

    testing = function(){ 
     alert('Working'); 
    }; 

    showMe = function(test){ 
     window[test](arguments); 
    } 

    $(document).ready(function(){ 
     showMe('testing'); 
    }); 
})(jQuery); 

Как вы можете видеть, что я хочу вызвать функцию, используя только testing() значение String.

ответ

2

window - это объект. Вы можете разместить его внутри произвольного объекта:

(function ($) { 
    "use strict"; 
    var testing, 
    showMe, 
    funcs = {}; 

    funcs.testing = function(){ 
     alert('Working'); 
    }; 

    showMe = function(test){ 
     funcs[test](arguments); 
    } 

    $(document).ready(function(){ 
     showMe('testing'); 
    }); 
})(jQuery); 
+0

Спасибо! это работает! –

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