Function.prototype.apply()/Function.prototype.call()

(標準組み込みオブジェクト > Function > メソッド)
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/apply
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Function/call

関数名.apply(関数の処理の対象となる要素,関数で使う引数(配列のみ) );
関数名.call(関数の処理の対象となる要素,関数で使う引数,関数で使う引数,関数で使う引数… );

定義した関数を呼び出すことができるメソッド。
呼び出す際に、関数の処理の対象となる要素を指定することができる。つまり、要素に処理を行ないたい場合は、applyでを指定する。
さらに、呼び出した関数で使う引数もapplyの中で指定することができる。これにより、関数の中で対象を決める必要がなくなるので、いろんなところで関数を使いまわすことができる。
applyの特徴は、呼び出した関数内で使う引数(applyの第二引数)は配列のみが使えるという点である。つまり配列を使う関数を呼び出す時に使うメソッドである。
なお、applyと同じく、関数を呼び出すメソッドにcallというメソッドがあるが、こちらは第2引数に配列ではない引数を指定する際に使用する。

var list = function() {
  for (var i = 0; i < arguments.length; i++) {
    console.log(arguments[i]);
  };
};
var args = [1,2,3,4,5];
list.apply(window, args);
>> 12345
inserted by FC2 system