我有一组存储在对象内的函数
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);
关于javascript - 如何使用单独变量(对象)中指定的参数调用函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29467558/