是否有可能在ES6中将rest参数作为函数参数?

时间:2016-10-04 21:05:27

标签: javascript ecmascript-6

我们可以使用ES6在函数参数中有两个或更多的rest参数吗?有人请解释一下吗?

function f(a, b, ...args1, c, ...arg2) {
    //do somthing
}

这可以用es6吗?

2 个答案:

答案 0 :(得分:2)

没有

来自rest parameters on MDN

  

如果函数的最后一个命名参数以...为前缀,它将成为一个数组,其元素从0(包括)到theArgs.length(独占) )由传递给函数的实际参数提供。

(强调我的)

如果它是“最后一个”,它显然只能是一个。

答案 1 :(得分:2)

不,因为结果不能很好地定义。

例如,如果你打电话

f(1,2,3,4,5);
然后会有不同的合理可能性:

a = 1;
b = 2;
args1 = [];
c = 3;
args2 = [4,5];
a = 1;
b = 2;
args1 = [3];
c = 4;
args2 = [5];
a = 1;
b = 2;
args1 = [3,4];
c = 5;
args2 = [];
a = 1;
b = 2;
args1 = [3,4,5];
c = undefined;
args2 = [];