JavaScript/Function/prototype/length

カテゴリ:Book:JavaScript#Function/prototype/length%20

Function.prototype.length は、関数が期待する典型的な引数の数を表すプロパティです。このプロパティは、関数が定義された際に指定された仮引数の数を示しますが、関数が呼び出される際に異なる数の引数を渡すことも可能です[1]

構文

func.length
  • func: 引数の数を確認する対象の関数。

関数の length プロパティを確認するプログラム

以下のプログラムは、Function.prototype.length を使用して関数が期待する引数の数を確認します。

function sum(a, b, c) {
  return a + b + c;
}

console.log(sum.length); // 3

このプログラムでは、sum 関数が期待する引数の数を確認しています。sum 関数は3つの引数を期待しているため、sum.length3 を返します。

デフォルト引数を持つ関数の length プロパティを確認するプログラム

以下のプログラムは、デフォルト引数を持つ関数の length プロパティを確認します。

function greet(name = 'Alice', message = 'Hello') {
  console.log(`${message}, ${name}!`);
}

console.log(greet.length); // 0

このプログラムでは、greet 関数が期待する引数の数を確認しています。greet 関数はデフォルト引数を持っているため、greet.length0 を返します。

可変長引数を持つ関数の length プロパティを確認するプログラム

以下のプログラムは、可変長引数を持つ関数の length プロパティを確認します。

function logMessages(...messages) {
  messages.forEach(message => console.log(message));
}

console.log(logMessages.length); // 0

このプログラムでは、logMessages 関数が期待する引数の数を確認しています。logMessages 関数は可変長引数を持っているため、logMessages.length0 を返します。

注意点

  • 引数の数: length プロパティは、関数が定義された際に指定された仮引数の数を示します。デフォルト引数や可変長引数を持つ場合、length プロパティは影響を受けます。
  • 変更不可: length プロパティは変更不可(Writable: false)であり、列挙不可(Enumerable: false)です。ただし、設定可能(Configurable: true)です。
  • 関数の動作: length プロパティは、関数が期待する引数の数を示しますが、関数が呼び出される際に異なる数の引数を渡すことも可能です。関数がどのように動作するかは、関数の実装に依存します。

脚註

  1. これは、関数が期待する引数の数を確認するために使用されます。

外部リンク

カテゴリ:Book:JavaScript#Function/prototype/length%20 カテゴリ:JavaScript
カテゴリ:Book:JavaScript カテゴリ:JavaScript カテゴリ:Pages using the JsonConfig extension