arguments オブジェクト

現在実行中の関数、その引数、およびその関数の呼び出し元の関数を表すオブジェクトです。 このオブジェクトを明示的に構築することはできません。

プロパティ

arguments オブジェクトのプロパティ

メソッド

arguments オブジェクトには、メソッドはありません。

要件

Version 1

解説

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

参照

参照

new 演算子

function ステートメント

/fast