所以我有以下伪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);
如果您想将动态调用的这三个函数设为私有,这可能会更好。