length プロパティは、関数が期待する引数の数を参照します。

Function.length のプロパティ属性
書込可能 不可
列挙可能 不可
設定可能

説明

length は function オブジェクトのプロパティであり、関数が期待する引数の数、つまり形式的引数を参照します。この数に rest parameter は含まれず、既定値がある最初の引数の前までしか含みません。これに対し、arguments.length は関数のローカルスコープ内で用いられ、関数が実際に受け取った引数の数……つまり実引数の数を参照するのに用いるものです。

Function コンストラクターのデータプロパティ

Function コンストラクター自体は、Function オブジェクトです。この length データプロパティの値は 1 です。プロパティの属性は、: Writable: false、Enumerable: false、Configurable: true です。

Function プロトタイプのオブジェクト

Function プロトタイプオブジェクトの length プロパティの値は 0 です。

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

console.log((function()        {}).length); /* 0 */
console.log((function(a)       {}).length); /* 1 */
console.log((function(a, b)    {}).length); /* 2 etc. */

console.log((function(...args) {}).length); 
// 0, rest parameter is not counted

console.log((function(a, b = 1, c) {}).length);
// 1, only parameters before the first one with 
// a default value is counted

仕様

仕様 ステータス コメント
ECMAScript 1st Edition (ECMA-262) 標準 初期定義。JavaScript 1.1 で実装。
ECMAScript 5.1 (ECMA-262)
Function.length の定義
標準  
ECMAScript 2015 (6th Edition, ECMA-262)
Function.length の定義
標準 このプロパティの configurable 属性が true となる。
ECMAScript Latest Draft (ECMA-262)
Function.length の定義
ドラフト  

ブラウザー実装状況

We're converting our compatibility data into a machine-readable JSON format. This compatibility table still uses the old format, because we haven't yet converted the data it contains. Find out how you can help!

機能 Chrome Firefox (Gecko) Internet Explorer Opera Safari
基本サポート (有) (有) (有) (有) (有)
Configurable: true ? 37 (37) ? ? ?
機能 Android Chrome for Android Firefox Mobile (Gecko) IE Mobile Opera Mobile Safari Mobile
基本サポート (有) (有) (有) (有) (有) (有)
Configurable: true ? ? 37.0 (37) ? ? ?

関連項目

ドキュメントのタグと貢献者

 このページの貢献者: YuichiNukiyama, teoli, tatsuyaoiw, ethertank
 最終更新者: YuichiNukiyama,