callとapply
======================================
call()/apply()
Functionクラスには、call()とapply()と言うメソッドがあります。この二つのメソッドは、どちらも「関数呼び出し」を目的としており、引数の指定方法に違いがあります。
// apply()メソッドの定義
Function.prototype.apply (thisArg, argArray)// call()メソッドの定義
Function.prototype.call (thisArg [ , arg1 [ , arg2, … ] ] )どちらも、第一引数は「thisArg」となっています。これは、関数内で使用するthisキーワードが指すオブジェクトです。もし thisArgにnullやundefinedを指定すると、関数内で使用するthisはグローバルオブジェクト(ブラウザ環境であればwindowオブジェクト)を指すことになります。
ちなみに,
hoge.call(obj, arg1, arg2);
と呼び出した場合、
obj.hoge2 = hoge;
obj.hoge2(arg1, arg2);
とした場合と同じになるみたい。
======================================
参考サイト : http://builder.japan.zdnet.com/sp/javascript-kickstart-2007/story/0,3800083428,20371265,00.htm