1

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

例子:

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动态。

4

2 回答 2

2

使用apply方法:

app[fn_name].apply(app, fn_args);

https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Function/apply

于 2012-06-27T14:39:44.763 回答
1

使用function.apply().

app[fn_name].apply(app, fn_args);

第一个参数是this函数内部的上下文 ( ),第二个参数是其项应作为参数传递的数组。

于 2012-06-27T14:40:22.900 回答