【问题标题】:Passing arguments of a function to another function in javascript [duplicate]将函数的参数传递给javascript中的另一个函数[重复]
【发布时间】:2014-03-08 16:08:18
【问题描述】:

我定义了一个方法,比如abc,它接受一个函数名,比如xyz,并将该函数的参数作为其参数。现在,abc 方法需要使用收到的参数调用 xyz

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

例如:xyz 将被定义为:

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

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

【问题讨论】:

  • 您可以发布您拥有的代码而不是解释吗?

标签: javascript


【解决方案1】:

使用函数的apply 方法通过变量参数列表调用它:

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

您还可以通过提供第一个参数来传递当前上下文:

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

【讨论】:

  • 我的 funcName 将出现在 arguments 变量中。由于 javascript 不支持数组操作,我如何删除第一个参数并将其余参数传递给 funcName 函数?
  • 我修复了使用arguments.slice(1)的答案。
最近更新 更多