函数的fn.length和arguments.length有什么区别?

在JavaScript中,fn.lengtharguments.length有着明显的区别。

  1. 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给出的是函数调用时实际传递的参数数量。
posted @ 2024-12-24 10:21  王铁柱6  阅读(42)  评论(0)    收藏  举报