arguments オブジェクト
更新 : 2007 年 11 月
現在実行中の関数、その引数、およびその関数の呼び出し元の関数を表すオブジェクトです。このオブジェクトを明示的に構築することはできません。
プロパティ
メソッド
arguments オブジェクトには、メソッドはありません。
必要条件
解説
arguments オブジェクトは、各関数について、それぞれの実行が開始されるときにインスタンス化されます。arguments オブジェクトには、関連する関数のスコープ内からだけ直接アクセスできます。
関数に渡されるすべてのパラメータとパラメータの数は、arguments オブジェクトに格納されます。関数の arguments オブジェクトは配列ではありませんが、配列の各要素にアクセスする場合と同じ [ ] 表記を使用して、各引数にアクセスできます。
arguments オブジェクトを使用すると、任意の数の引数を受け取る関数を作成できます。この機能は、関数の定義時にパラメータ配列の構築を使用することでも実現できます。詳細については、function ステートメントのトピックを参照してください。
メモ : |
---|
arguments オブジェクトは、高速モードで実行されている場合は利用できません。JScript の既定のモードは高速モードです。arguments オブジェクトを使用するプログラムをコマンド ラインからコンパイルするには、/fast- を使用して fast オプションをオフにする必要があります。ASP.NET で fast オプションをオフにするのは安全ではありません。スレッドに関する問題が発生する場合があります。 |
使用例
次のコードは、arguments オブジェクトの使用例です。
function argTest(a, b) : String {
var i : int;
var s : String = "The argTest function expected ";
var numargs : int = arguments.length; // Get number of arguments passed.
var expargs : int = argTest.length; // Get number of arguments expected.
if (expargs < 2)
s += expargs + " argument. ";
else
s += expargs + " arguments. ";
if (numargs < 2)
s += numargs + " was passed.";
else
s += numargs + " were passed.";
s += "\n"
for (i =0 ; i < numargs; i++){ // Get argument contents.
s += " Arg " + i + " = " + arguments[i] + "\n";
}
return(s); // Return list of arguments.
}
print(argTest(42));
print(argTest(new Date(1999,8,7),"Sam",Math.PI));
このプログラムの出力は次のようになります。
The argTest function expected 2 arguments. 1 was passed.
Arg 0 = 42
The argTest function expected 2 arguments. 3 were passed.
Arg 0 = Tue Sep 7 00:00:00 PDT 1999
Arg 1 = Sam
Arg 2 = 3.141592653589793