我正在尝试从字符串中执行一个函数以及一个应被视为多个参数的数组。
示例:
var app = {
bar : function(val1, val2, val4){
console.log(val1+val2+val3);
}
};
fn_name = "bar";
fn_args = ['one', 'two', 'three'];
app[fn_name](fn_args);
此代码的问题是fn_args
作为单个参数传递而不是作为单独的参数传播,是否有解决方法?我仍想动态传递fn_name
和fn_args
。
答案 0 :(得分:2)
使用apply
方法:
app[fn_name].apply(app, fn_args);
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply
答案 1 :(得分:1)
使用function.apply()
。
app[fn_name].apply(app, fn_args);
第一个参数是函数内的上下文(this
),第二个参数是应该作为参数传递的数组。