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