JavaScript:将未知数量的参数从一种方法传递到另一种方法

时间:2020-02-27 23:01:58

标签: javascript arguments destructuring spread

这就是我想做的。我有两种方法,第一种可以接受任意数量的参数。这个方法是一个中介,它不知道它将要接收多少个参数,但是它需要将其所有参数传递给另一个方法。显然还有更多的代码,但是我已经将其简化为最低限度。

function acceptArguments(args) {
  secondFunction(arguments);
}

通常,使用这种方法,第二种方法将参数接受为数组

function secondFunction(param) {
  console.log(param);
}

运行此程序,我希望看到以下内容:

acceptArguments(1、2、3、4)=>并且输出为[1,2,3,4]

但是我想做的是让secondFunction方法单独接受参数,而不是将其接受为数组,所以看起来像这样:

function secondFunction(v1, v2, v3, v4) {
  console.log(v1, v2, v3, v4);
}

运行此代码,如果我将1、2、3、4个单独的参数传递给方法,我希望看到以下内容:

acceptArguments(args)=>,输出将为1、2、3、4

我的情况是,secondFunction方法知道它将要接收多少个参数,但是acceptArguments方法(这是一个中介程序,它不知道或不在乎它传递了多少个参数。

我尝试了以下操作,但没有结果:

function acceptArguments() {
  secondFunction(...arguments);
}

function acceptArguments() {
  secondFunction(...Object.keys(arguments));
}

function acceptArguments() {
  secondFunction.apply(Object.keys(arguments));
}

1 个答案:

答案 0 :(得分:1)

您可以使用rest语法将所有参数收集到acceptArguments中的数组中(这比使用arguments变量更可取),然后将这些参数传播到{{1} }:

secondFunction