函数的fn.length和arguments.length有什么区别?
在JavaScript中,fn.length和arguments.length有着明显的区别。
- fn.length:
fn.length返回的是函数声明时定义的参数个数。这里的fn是一个函数名,而length是函数对象的一个属性,它表示函数期望接收的参数数量。注意,这个数量并不包括剩余参数(...args)。
例如:
function exampleFunc(a, b, c) {
// some code
}
console.log(exampleFunc.length); // 输出 3
在这个例子中,exampleFunc.length返回3,因为exampleFunc函数在声明时定义了3个参数:a、b和c。
2. arguments.length:
arguments.length返回的是函数调用时实际传递的参数个数。arguments是一个类数组对象,它代表了函数调用时传递给函数的参数列表。这个对象在函数体内部是自动可用的,你可以使用arguments.length来获取调用当前函数时传递的参数数量。
例如:
function anotherExampleFunc() {
console.log(arguments.length);
}
anotherExampleFunc(1, 2, 3, 4); // 输出 4
在这个例子中,anotherExampleFunc函数被调用时传递了4个参数,所以arguments.length返回4。
总结:
fn.length给出的是函数定义时期望的参数数量。arguments.length给出的是函数调用时实际传递的参数数量。
浙公网安备 33010602011771号