…
Spread
该运算符将可迭代对象(数组、字符串),展开为一个个单独的元素或者函数的参数。
var arr = [1, 2, 3, 4];
function foo(a, b, c, d){
console.log(a, b, c, d); //1 2 3 4
}
foo(...arr);
//老方法,使用apply间接通过数组传参
foo.apply(null, arr);
Rest parameters
给函数最后一个形参加上…,使得最后一个形参会变成数组。实参传值时会将剩余的参数都收集到数组中。
function foo(a, ...args){
console.log(args); //[2, 3, 4]
}
foo(1,2,3,4);
:::info 函数只能定义一个rest参数,而且必须放在参数列表的最后一个。 :::