Flash Lite 2.x および 3.0 ヘルプ

apply (Function.apply メソッド)

public apply(thisObject:Object, [argArray:Array])

ActionScript が呼び出す関数内で使用される thisObject の値を指定します。このメソッドは、呼び出される関数に渡されるパラメータも指定します。apply() は Function クラスのメソッドなので、ActionScript 内のすべての Function オブジェクトのメソッドとしても使用できます。

パラメータは、カンマ区切りリストとしてパラメータを指定する Function.call() とは異なり、Array オブジェクトとして指定します。これは、スクリプトが実際に実行されるまで、渡されるパラメータ数が不明である場合にも便利です。

呼び出された関数が戻り値として指定する値を返します。

パラメータ

thisObject:Object - myFunction の適用先のオブジェクト。

argArray:Array (オプション) - エレメントをパラメータとして myFunction に渡す配列。

戻り値

呼び出された関数が指定する任意の値。

次の 2 つの関数呼び出しは同じです。

Math.atan2(1, 0)
Math.atan2.apply(null, [1, 0])

次の簡単な例は、apply() を使用してパラメータの配列を渡す方法を示しています。

function theFunction() {
    trace(arguments);
}

// パラメータとして apply() に渡す新しい配列を作成します
var firstArray:Array = new Array(1,2,3);
theFunction.apply(null,firstArray);
// 出力 : 1、2、3

// パラメータとして apply() に渡す 2 番目の配列を作成します
var secondArray:Array = new Array("a", "b", "c");
theFunction.apply(null,secondArray);
// a、b、c を出力

次の例では、apply() を使用してパラメータの配列を渡し、this の値を指定します。

// 関数を定義します
function theFunction() {
    trace("this == myObj?" + (this == myObj));
    trace("arguments: " + arguments);
}

// オブジェクトをインスタンス化します
var myObj:Object = new Object();

// パラメータとして apply() に渡す配列を作成します
var firstArray:Array = new Array(1,2,3);
var secondArray:Array = new Array("a", "b", "c");

// apply() を使用して this の値が myObj になるように設定し、firstArray を送ります
theFunction.apply(myObj,firstArray);
// 出力
// this == myObj? true
// 引数 : 1,2,3

// apply() を使用して this の値が myObj になるように設定し、secondArray を送ります
theFunction.apply(myObj,secondArray);
// 出力
// this == myObj? true
// 引数 : a,b,c

関連項目

call (Function.call メソッド)

 

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