Function.length

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

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

描述

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

Function 建構子的 data property

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

Function prototype 物件的 property

Function (en-US) 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

參見