使用参数作为数组调用javascript函数

时间:2012-06-27 14:38:01

标签: javascript

我正在尝试从字符串中执行一个函数以及一个应被视为多个参数的数组。

示例:

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_namefn_args

2 个答案:

答案 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),第二个参数是应该作为参数传递的数组。