したがって、次の疑似 Javascript コードがあります。
var Class = (function(window, document, $) {
function meth_1()
{
//some code
}
function meth_2()
{
//some code
}
function meth_3()
{
//some code
}
function meth_4()
{
//some code to call other three functions dynamically
}
Class = {
meth_1: meth_1,
meth_2: meth_2,
meth_3: meth_3,
meth_4: meth_4
};
return Class;
})(window, document, jQuery);
関数ではmeth_4
、関数名を文字列として渡すことで、他の 3 つの関数を動的に呼び出したいと考えています。これどうやってするの?!
この関連する StackOverflow の質問では、答えはウィンドウ スコープでこれを行う方法の解決策を提供しますwindow[function_name]()
。ただし、特定の状況でそれを行う方法を知りたいです。
ありがとう。
編集
私が選択した答えはうまくいきます。次のこともできます。
var Class = (function(window, document, $) {
var meth_func = {
meth_1: function(){/**your code**/},
meth_2: function(){/**your code**/},
meth_3: function(){/**your code**/}
}
function meth_4(func_name)
{
meth_func[func_name]();
}
Class = {
meth_4: meth_4
};
return Class;
})(window, document, jQuery);
動的に呼び出される 3 つの関数を非公開にしたい場合は、おそらくこれでうまくいくでしょう。