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

JavaScript: Pass unknown number of arguments from one method to another

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

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));
}

您可以使用 rest 语法将所有参数收集到 acceptArguments 中的数组中(这优于使用 arguments 变量),然后将这些参数传播到 [= 的调用中13=]:

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

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

acceptArguments(1, 2, 3, 4)