2012-06-27 23 views
1

我试图从一个字符串中执行一个函数以及一个应该被视为多个参数的数组。以参数的形式调用一个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

+0

而不是val1,val2,val3。你可以使用单个参数'args'并使用里面的bar函数。 – Dev

回答

1

使用function.apply()

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

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

相关问题