2014-02-11 98 views
0

我有一个定义的方法,比如abc,它接受函数名称,比如xyz和该函数的参数作为参数。现在,abc方法需要用收到的参数调用xyz将函数的参数传递给javascript中的另一个函数

xyz可以是任何方法,可以有任何数量的参数,也可以使用xyz不能使用参数关键字。相反,该方法的参数应该作为单独的变量传递。

例:xyz将其定义为:

var xyz = function(a,b){//code for processing a and b} 

我打电话了abc方法的第一个参数来调用和参数其余功能作为参数传递给函数,同时调用它。在abc中,我使用arguments关键字来访问发送的参数的动态数量。但是从那里我不确定如何用参数调用下一个函数。

+0

,而不是解释可以你发布你的代码? – stackErr

回答

1

使用功能的apply方法具有可变参数列表来调用它:

function abc(funcName) { 
    funcName.apply(null, [].slice.call(arguments, 1)); 
} 

你也可以沿着当前的情况下通过在第一个参数传递:

function abc(funcName) { 
    funcName.apply(this, [].slice.call(arguments, 1)); 
} 
+0

我的funcName将出现在参数变量中。由于数组操作在JavaScript中不受支持,我如何删除第一个参数并将其余参数传递给funcName函数? – user3295429

+0

我修复了使用'arguments.slice(1)'的答案。 – Barmar

相关问题