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