JavaScript

Function.lengthプロパティ

 編集:2022.07.27 by T.A.

解説

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

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

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

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

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

関数の length の使用
D=Function.length;	//=1
D=(function(){}).length;	//=0
D=(function(P1){}).length;	//=1
D=(function(P1,P2){}).length;	//=2

D=(function(...args){}).length;	//=0

D=(function(a, b=1, c){}).length;	//=1: 既定値を持つ引数が最初に登場する前までの引数だけが数に含まれる

テスト