参考以下文章学习:
1. Function.length - MDN
length 属性指明函数的形参(formal parameters)个数,length 是函数对象的一个属性,指该函数有多少个必须要传入的参数,即形参的个数,形参的数量不包括 rest parameter。仅包括第一个具有函数参数默认值的参数之前的参数个数。与之对比的是,
arguments.length
是函数被调用时实际传参的个数。
Function.prototype.length 属性的属性描述符:
var cl = console.log;
cl(Function.length); // expected output: 1
cl((function () {}).length); // expected output: 0
cl((function (a) {}).length); // expected output: 1
cl((function (a, b) {}).length); // expected output: 2 etc.
cl((function (...rest) {}).length); // expected output: 0. rest parameter is not counted;
cl((function (a, b = 1, c) {}).length); // expected output: 1. only parameters before the first one with a default value is counted
网友评论