Function.length

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since July 2015.

length property 表示該 function 預期被傳入的參數數量

Function.length 的屬性特性
可寫
可列舉
可配置

描述

length 是 function 物件的一個 property,表示該 function 預期被傳入的參數數量,這個數量並不包含 rest parameter 且只包涵第一個預設參數(Default Parameters)前的參數。相較之下 arguments.length 是 function 內部的物件,會提供真正傳進 function 中的參數數量。

Function 建構子的 data property

Function 建構子本身就是一個 Function 物件。其 length data property 的值為 1。此 property 的 attributes 包含: Writable: false, Enumerable: false, Configurable: true.

Function prototype 物件的 property

Function prototype 物件的 length property 其值為 0。

範例

js
console.log(Function.length); /* 1 */

console.log(function () {}.length); /* 0 */
console.log(function (a) {}.length); /* 1 */
console.log(function (a, b) {}.length); /* 2 以此類推. */

console.log(function (...args) {}.length); /* 0, rest parameter 不包含在內 */

console.log(function (a, b = 1, c) {}.length); /* 1 */
// 只有在預設參數前的參數會被算到,也就是只有 a 會被視為必須傳入的參數
// 而 c 將被預設為 undefined

規範

Specification
ECMAScript Language Specification
# sec-function-instances-length

瀏覽器相容性

BCD tables only load in the browser

參見