【发布时间】:2020-06-12 01:00:47
【问题描述】:
这是我想做的。我有两种方法,第一种可以接受任意数量的参数。这个方法是一个中介,它不知道它会接收多少个参数,但它需要将它的所有参数传递给另一个方法。显然还有更多代码,但我已将其精简到最低限度。
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));
}
【问题讨论】:
-
@shkaper 这个问题是关于如何接收未知数量的参数,而不是如何将它们传递给下一个函数。
-
secondFunction(...arguments);为我工作。 -
我不确定您为什么认为
Object.keys(arguments)可能有效。参数是值,而不是键。
标签: javascript arguments destructuring spread