applyのこと

まず、applyはFunctionオブジェクトのメソッドである(callについては割愛)。
ほとんど忘れていたのでメモ。
applyを知る上ではthisの意味が重要。

function Func1(name){
  this.name=name;
}
function Func2(){
  this.exec=function(){alert(this.name)};
}
var a=new Func1('hoge');
Func2.apply(a);
a.exec(); // 'hoge'


引数を渡す場合

function Func1(name){
  this.name=name;
}
function Func2(str){
  this.exec=function(){alert(this.name+str)};
}
var a=new Func1('hoge');
Func2.apply(a,['fuge']); //applyでは第2引数は配列で渡す
a.exec(); // 'hogefuge'