函数的length
属性は、関数のパラメータの数を示します。
length
属性値は、関数オブジェクトである関数の数を指すパラメータ、即ち、仮パラメータの数を渡さなければなりません。パラメータは、パラメータの残数の数は含まれていないパラメータの最初の数などを前に、デフォルト値を持っています。コントラスト arguments.length
関数が呼び出されたときに渡す実引数の数です。
// 長さ属性は1 1. Functionコンストラクタである。 にconsole.log(Function.length); // 1 にconsole.log(関数(A){}長さ。); // 1 にconsole.log(関数(A、 B、C)} {長さ);. // 3 / * 2コールが実際にパラメータを定義することなく、内部関数パラメータの引数である場合は、次に、長さが0のみ得られます。 * / 機能TEST1(){ にconsole.log(arguments.lengthを); } にconsole.log(test1.length); // 0 TEST1(1,2); // 2
ES6 lengthプロパティの機能
ES6指定し、デフォルト値の後、関数の長さのプロパティは、引数の数を返します。デフォルト値が指定されていません。つまり、後のデフォルト値を指定し、lengthプロパティが歪むことになります。次のコードは、戻り値の長さ属性は、関数のパラメータのデフォルト値の数を減算することによって指定されたパラメータの数に等しいです。
lengthプロパティの意味は、パラメータの予想される数の関数が渡されていることだからです。パラメータはデフォルト値を指定するには、後に渡されたパラメータの予想される数は、この値が含まれていません。
console.log((関数(A){})の長さ。); // 1 にconsole.log((関数(A = 5){})の長さ。); // 0 はconsole.log((関数(A、B 、C = 5){})の長さ);.。// 2; / * パラメータを占めていないがここで残り長プロパティ。* / にconsole.log((関数(...引数){})の長さ。); // 0; / * パラメータはデフォルト値を設定するパラメータの終わりではない場合、lengthプロパティはもはや後者のパラメータに含まれていません* / (関数(A = 0、B、C){})長;. // 0 (関数の長さ(A、B = 1、C){}); // 1