如何使用在单独的变量(对象)中指定的参数调用函数?

How can I call function with arguments specified in separate varible (object)?

我在对象中存储了一组函数

func1(a,b,c)
func2(a,b)
func3(a,b,c,d,e,f,g...)

var functionsContainer = {f1: func1, f2: func2, f3: func3};

如果我有接受 functionsContainer 中函数名称的构造函数和带有

等参数的对象
var args = {a: 1, b: 2};
var t = MyConstructor("f2", args);

如何使用传递的参数调用 f2 函数?只有 eval()?

您不需要评估:

var func2 = functionsContainer["f2"];
var args = {a:1,b:2};
// map the args into an array
var array = $.map(args, function(value, index) {
    return [value];
});

// apply works with an array
func2.apply(this, array);

使用call or apply

functionsContainer["f1"].call(this, args)