Function.length

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 2017 Draft (ECMA-262)
Function.length の定義
ドラフト  

ブラウザー実装状況

機能 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,