length
プロパティは、関数が期待する引数の数を示します。
このデモのソースファイルは GitHub リポジトリに格納されています。デモプロジェクトに協力したい場合は、 https://github.com/mdn/interactive-examples をクローンしてプルリクエストを送信してください。
Function.length のプロパティ属性 |
|
---|---|
書込可能 | 不可 |
列挙可能 | 不可 |
設定可能 | 可 |
解説
length
は function オブジェクトのプロパティであり、関数が期待する引数の数、つまり形式上の引数の数を示します。この数に残余引数は含まれず、既定値を持つ引数が最初に登場する前までしか含みません。これに対し、 arguments.length
は関数のローカルスコープ内で用いられ、関数が実際に受け取った引数の数、つまり実引数の数を参照するのに用いるものです。
Function コンストラクターのデータプロパティ
Function
コンストラクター自体は、Function
オブジェクトです。この length
データプロパティの値は 1 です。プロパティの属性は、 Writable: false
、Enumerable: false
、Configurable: true
です。
Function プロトタイプのオブジェクトのプロパティ
Function
プロトタイプオブジェクトの length プロパティの値は 0 です。
例
関数の length の使用
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 は数に含まれない
console.log((function(a, b = 1, c) {}).length);
// 1, 既定値を持つ引数が最初に登場する前までの
// 引数だけが数に含まれる
仕様書
ブラウザーの互換性
BCD tables only load in the browser
このページの互換性一覧表は構造化データから生成されています。データに協力していただけるのであれば、 https://github.com/mdn/browser-compat-data をチェックアウトしてプルリクエストを送信してください。