JavaScriptの関数オブジェクトについている不思議なメソッド、callとapplyについての記事です。これを使うと使いたいメソッドを実行時に文字列で指定するような感じの動的メソッド呼び出しが実現できます。
call, applyの第一引数は、呼ばれた先でのthisを指定します。
callとapplyの違いは、引数の与え方です。例: fn.call(context, arg1, arg2, ...); fn.apply(context, [arg1, arg2, ...])
var list = [];
list.push("hoge0");
list["push"].call(list, "hoge1");
var m = "push";
list[m].apply(list, ["hoge2"]);
console.log(list); // output: ["hoge0", "hoge1", "hoge2"]
0 コメント:
コメントを投稿