2010-03-01

[javascript] call と apply のサンプル

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"]