JavaScript中函数的length属性
length是函数的一个属性
- 函数的length是js函数对象的一个属性,函数的length代表形参的个数(即有多少必传参数)
- 形参的数量不包括不包括剩余参数的个数,仅包括“第一个具有默认值之前的参数个数”
如:
console.log("function(a = 1, b, c)",(function(a = 1, b, c) {}).length); // 0
- 解释: 形参a有默认值为1,a之前并没有参数,所以length为0
console.log("function(a , b= 1, c)",(function(a = 1, b, c) {}).length); // 1
- 解释: 形参a有默认值为1,a之前有形参b,所以length为1
console.log("function(a , b, c)",(function(a , b, c) {}).length); // 3
- 解释: 函数有3个必传的形参, 所以length为3
arguments.length 是函数被调用时实际传参的个数
function ags(a, b, c) {
console.log(arguments.length); // 3
}
ags(1,2,3)