Function 实例的 length 数据属性表示函数期望的参数数量。
{{InteractiveExample("JavaScript Demo: Function.length")}}
```js interactive-example function func1() {}
function func2(a, b) {}
console.log(func1.length); // Expected output: 0
console.log(func2.length); // Expected output: 2
## 值
一个数字。
{{js_property_attributes(0, 0, 1)}}
## 描述
一个 <code>Function</code> 对象的 `length` 属性表示函数期望的参数个数,即形参的个数。这个数字不包括{{jsxref("Functions/rest_parameters", "剩余参数", "", 1)}},只包括在第一个具有默认值的参数之前的参数。相比之下,{{jsxref("Functions/arguments/length", "arguments.length")}} 是局限于函数内部的,它提供了实际传递给函数的参数个数。
<code>Function</code> 构造函数本身就是一个 `Function` 对象。它的 `length` 数据属性的值为 `1`。
由于历史原因,`Function.prototype` 本身是可调用的。`Function.prototype` 的 `length` 属性的值为 `0`。
## 示例
### 使用 function length
```js
console.log(Function.length); // 1
console.log((() => {}).length); // 0
console.log(((a) => {}).length); // 1
console.log(((a, b) => {}).length); // 2,依此类推
console.log(((...args) => {}).length);
// 0,剩余参数不计算在内
console.log(((a, b = 1, c) => {}).length);
// 1,只计算第一个具有默认值的参数之前的参数