【Node.js24.x】Function::lengthプロパティの使い方
lengthプロパティの使い方について、初心者にもわかりやすく解説します。
基本的な使い方
lengthプロパティは、関数が定義された際に宣言された仮引数の数を保持するプロパティです。Node.js環境のJavaScriptでは、すべての関数オブジェクトはFunctionクラスのインスタンスであるため、このlengthプロパティを組み込みで持っています。
このプロパティの値は、関数が実際に呼び出された際に渡される引数の数とは異なり、関数の定義時に記述された必須の仮引数の数を表します。具体的には、デフォルト値が設定された仮引数(例:function func(a, b = 1)のb)や、残余引数(rest parameters、例:function func(a, ...args)の...args)は、lengthプロパティのカウントには含まれません。つまり、lengthはそれらより前の、必須の仮引数の数を示します。
例えば、function add(x, y)という関数であればlengthは2を返し、function greet(name, message = 'Hello')という関数ではlengthは1を返します。また、function sum(...numbers)のように残余引数のみを持つ関数の場合、lengthは0を返します。
このプロパティは、関数が期待する引数の数を動的に取得し、引数の数に基づいた処理の分岐や、引数チェックなどのバリデーションを行う際に利用できます。Node.js 24を含む最新のECMAScript仕様に準拠した挙動を示します。
構文(syntax)
1function exampleFunctionA() {} 2function exampleFunctionB(param1) {} 3function exampleFunctionC(param1, param2, param3) {} 4 5console.log(exampleFunctionA.length); 6console.log(exampleFunctionB.length); 7console.log(exampleFunctionC.length);
引数(parameters)
引数なし
引数はありません
戻り値(return)
number
Function.prototype.length プロパティは、関数が定義された際に指定された引数の数(デフォルト値やレストパラメータを除く)を数値で返します。