arguments
オブジェクトの使用
関数の引数は配列のようなオブジェクトで管理されます。関数内では、次のようにして渡された引数を指すことができます。
arguments[i]
ここで i
は引数の順序を表す数を指します。これは 0 から始まります。関数に渡された第 1 引数は arguments[0]
となります。引数のトータルの数は arguments.length
で示されます。
arguments
オブジェクトを使用すると、宣言時の仮引数の数よりも多くの引数を使って関数を呼び出すことができます。これはその関数に渡す引数の数が前もってわかっていない場合に役立ちます。arguments
.length を使用することで実際にその関数に渡された引数の数を特定することができます。また、arguments
オブジェクトを使用することで各引数を扱うことができます。
例えば、複数の文字列を連結する関数を考えます。この関数の仮引数は、連結するアイテムを区切るのに用いる文字列のみです。この関数は次のように定義されています。
function myConcat(separator) {
var result = ""; // リストを初期化する
// 引数について繰り返し
for (var i = 1; i < arguments.length; i++) {
result += arguments[i] + separator;
}
return result;
}
この関数に引数をいくつも渡すことができます。そして各引数を文字列のリストに連結します。
// "red, orange, blue, " を返す
myConcat(", ", "red", "orange", "blue");
// "elephant; giraffe; lion; cheetah; " を返す
myConcat("; ", "elephant", "giraffe", "lion", "cheetah");
// "sage. basil. oregano. pepper. parsley. " を返す
myConcat(". ", "sage", "basil", "oregano", "pepper", "parsley");
さらなる情報については、コア JavaScript リファレンスの Function オブジェクト をご覧ください。
JavaScript 1.3 以前のバージョン
arguments オブジェクトは Function
オブジェクトのプロパティであり、次のように関数の名前を前に付けることができます。
functionName.arguments[i]