【JS】函数形参数量规则
现有函数,可以通过.length
获取参数长度
但形参出现默认参数或剩余参数时会有问题
通过MDN官方文档说明可知,一个 Function 对象的 length 属性表示函数期望的参数个数,即形参的个数。这个数字不包括剩余参数,只包括在第一个具有默认值的参数之前的参数。相比之下,arguments.length 是局限于函数内部的,它提供了实际传递给函数的参数个数。
Function 构造函数本身就是一个 Function 对象。它的 length 数据属性的值为 1。
console.log(Function.length); // 1console.log((() => {}).length); // 0
console.log(((a) => {}).length); // 1
console.log(((a, b) => {}).length); // 2,依此类推console.log(((...args) => {}).length);
// 0,剩余参数不计算在内console.log(((a, b = 1, c) => {}).length);
// 1,只计算第一个具有默认值的参数之前的参数