函数的length属性返回函数预期传入的参数个数,即函数定义之中的参数个数。
function f(a, b) { return a + b}
f.length // 2
上面代码中,函数f的length属性就是定义时的参数个数,不管调用时传入多少个参数,length属性始终等于2.
如果函数的参数有默认值,则计算length属性时,将不计算有默认值的参数
function f(a, b = 2) {return a + b }
f.length // 1
当函数中的参数中存在解构赋值时,解构的对象,被当作一个参数
function f({a = 1, b = 2}) { return a + b}
f.length // 1
当函数中有rest参数时,再计算length属性时,也将不计算rest参数
function f(a, ...args) {return [...args, a]}
f.length // 1