我的问题最好通过一个简单的代码示例来解释:
function doThing(a, ...b, c) {
console.log(a, b, c)
}
doThing(1,2,3,4); // Expect "1 [2,3] 4"
而是提供语法错误Unexpected token
,指向函数定义中b
之后的逗号。
a' rested'之后是否无法输入单个参数 ES6参数?如果没有,任何想法为什么?这对我来说真的很有用。谢谢!
修改:我最初认为doThing(a, ...b, c)
完全明确,但我现在看到doThing(1,2,3)
需要一个任意规则来决定是否3
进入b
或c
(即如果我们传递一些小于或等于函数定义中的参数数量的参数)。
答案 0 :(得分:1)
developer.mozilla.org说:
如果函数的最后一个命名参数以...为前缀,它将成为一个数组,其元素从0到theArgs.length由传递给函数的实际参数提供。
实际上,ES6的这个功能称为Rest parameters,因此它应该是参数列表中的最后一个。
所以这段代码会起作用:
function doThing(a, b, ...c) {
console.log(a, b, c);
}
doThing(1,2,3,4);