このページはコミュニティーの尽力で英語から翻訳されました。MDN Web Docsコミュニティーについてもっと知り、仲間になるにはこちらから。
Function: length
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since 2015年7月.
length はFunction インスタンスのプロパティで、関数が期待する引数の数を示します。
In this article
試してみましょう
function func1() {}function func2(a, b) {}console.log(func1.length);// 期待される出力結果: 0console.log(func2.length);// 期待される出力結果: 2値
数値です。
Function: length のプロパティ属性 | |
|---|---|
| 書込可能 | 不可 |
| 列挙可能 | 不可 |
| 設定可能 | 可 |
解説
Function オブジェクトのlength プロパティは、関数が期待する引数の数、つまり形式上の引数の数を示します。
これに対し、arguments.length は関数のローカルスコープ内で用いられ、関数が実際に受け取った引数の数、つまり実引数の数を参照するのに用いるものです。
Function コンストラクター自体は、Function オブジェクトです。このlength データプロパティの値は 1 です。
歴史的な理由により、Function.prototype は自身を呼び出すことができます。Function.prototype のlength は0 の値を持ちます。
例
>関数の length の使用
js
console.log(Function.length); // 1console.log((() => {}).length); // 0console.log(((a) => {}).length); // 1console.log(((a, b) => {}).length); // 2 etc.console.log(((...args) => {}).length);// 0, rest parameter は数に含まれないconsole.log(((a, b = 1, c) => {}).length);// 1, 既定値を持つ引数が最初に登場する前までの// 引数だけが数に含まれるconsole.log((({ a, b }, [c, d]) => {}).length);// 2, 分割パターンは、それぞれ単一の引数としてカウントされる仕様書
| Specification |
|---|
| ECMAScript® 2026 Language Specification> # sec-function-instances-length> |