箭头函数支持剩余参数,语法为...args且必须为最后一个形参;剩余参数是真数组,可直接调用数组方法,无实参时为空数组[],是访问实参的唯一标准方式。
箭头函数可以接收剩余参数(rest parameters),语法和普通函数一致,使用 ...args 形式。
剩余参数必须是最后一个形参,且前面不能有其他具名参数(除非用解构或默认值配合)。
const sum = (...nums) => nums.reduce((a, b) => a + b, 0);
const logWithPrefix = (prefix, ...messages) => console.log(prefix, ...messages);
(...a, b) => {}(语法错误)剩余参数在箭头函数里表现和普通函数完全相同:它是一个真正的数组,不是类数组对象,可直接调用 map、filter 等方法。
...args 收集的是调用时传入的“额外”实参,不包括已命名的参数args 是空数组 [],不会是 undefined
arguments 对象,剩余参数是访问实参的唯一标准方式容易混淆的地方在于「剩余参数」和「展开语法」写法相似但语义不同;在箭头函数中尤其要注意上下文绑定问题。
立即学习“Java免费学习笔记(深入)”;
(...rest, x = 1) => {} 是非法语法(a = 1, ...rest) => {}
this,但剩余参数本身不受影响——它只关乎参数接收逻辑