パッケージトップレベル
public class arguments
継承arguments Inheritance Object

arguments オブジェクトは、関数の引数を保存したり、引数にアクセスする場合に使用されます。関数の本体に含まれる場合、arguments オブジェクトにはローカルの arguments 変数を使用してアクセスできます。

引数は配列エレメントとして保存され、最初の引数は arguments[0] として、2 番目の引数は arguments[1] のようにアクセスされます。arguments.length プロパティは、関数に渡される引数の数を示します。関数で宣言された数と異なる数の引数が渡される場合もあります。

以前のバージョンの ActionScript とは異なり、ActionScript 3.0 には arguments.caller プロパティがありません。現在の関数を呼び出した関数への参照を取得するには、その関数への参照を引数として渡す必要があります。このテクニックの例については、arguments.callee の例を参照してください。

ActionScript 3.0 では、新しく ...(rest) キーワードが含まれています。arguments クラスではなく、このステートメントを使用することをお勧めします。

例の表示

関連項目

...(rest)
Function


パブリックプロパティ
 プロパティ定義
  callee : Function
現在実行中の関数への参照です。
arguments
 Inheritedconstructor : Object
特定のオブジェクトインスタンスのクラスオブジェクトまたはコンストラクタ関数への参照です。
Object
  length : Number
関数に渡される引数の数です。
arguments
 Inheritedprototype : Object
[static] クラスまたは関数オブジェクトのプロトタイプオブジェクトへの参照です。
Object
パブリックメソッド
 メソッド定義
 InheritedhasOwnProperty(name:String):Boolean
オブジェクトに指定されたプロパティが定義されているかどうかを示します。
Object
 InheritedisPrototypeOf(theClass:Object):Boolean
Object クラスのインスタンスが、パラメータとして指定されたオブジェクトのプロトタイプチェーン内にあるかどうかを示します。
Object
 InheritedpropertyIsEnumerable(name:String):Boolean
指定されたプロパティが存在し、列挙可能かどうかを示します。
Object
 InheritedsetPropertyIsEnumerable(name:String, isEnum:Boolean = true):void
ループ処理に対するダイナミックプロパティの可用性を設定します。
Object
 InheritedtoString():String
指定されたオブジェクトのストリング表現を返します。
Object
 InheritedvalueOf():Object
指定されたオブジェクトのプリミティブ値を返します。
Object
プロパティの詳細
calleeプロパティ
public var callee:Function

現在実行中の関数への参照です。



次のコードは、secondFunction() という名前の 関数を呼び出す関数への参照を取得します。firstFunction() 関数は、ブール引数 true を持ち、 secondFunction()firstFunction() を正常に呼び出していることを示して、 各関数が他方の関数を相互に呼び出すことによる無限ループを防ぎます。

callSecond パラメータが true であるため、firstFunction()secondFunction() を呼び出し、自身への参照を 唯一の引数として渡します。関数 secondFunction() は、 データ型が Function で、caller という名前のパラメータを使用して、この引数を受け取り、保存します。次に、secondFunction() 内から、 caller パラメータで firstFunction 関数を呼び出します。 ただし、このとき、callSecond 引数は false に設定されます。

実行が firstFunction() に戻ると、trace() ステートメントが実行されます。これは callSecondfalse であるためです。

  package {
    import flash.display.Sprite;
    
    public class ArgumentsExample extends Sprite {
        private var count:int = 1;
        
        public function ArgumentsExample() {
            firstFunction(true);
        }

        public function firstFunction(callSecond:Boolean) {
            trace(count + ": firstFunction");
            if(callSecond) {
                secondFunction(arguments.callee);
            }
            else {
                trace("CALLS STOPPED");
            }
        }

        public function secondFunction(caller:Function) {
            trace(count + ": secondFunction\n");
            count++;
            caller(false);
        }        
    }
}

lengthプロパティ 
public var length:Number

関数に渡される引数の数です。関数で宣言された数よりも増減する場合があります。


次の例は、calleelength などの さまざまな arguments プロパティの使用法を示しています。
package {
    import flash.display.Sprite;
    
    public class ArgumentsExample extends Sprite {
        public function ArgumentsExample() {
                println("Hello World");
        }
        
        public function println(str:String):void {
            trace(arguments.callee == this.println); // true
            trace(arguments.length);                 // 1
            trace(arguments[0]);                     // Hello World
            trace(str);                                // Hello World
        }
    }
}




 

このページに新しいコメントが追加された場合に、電子メールでの通知を希望する。 | コメントレポート

現在のページ: http://livedocs.adobe.com/flex/2_jp/langref/arguments.html