素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

Function.prototype.call()とFunction.prototype.apply()の使い方

関数を呼び出したとき、その関数がさすthisが引数の一つ目になるってこと。
んで、callの時はcallの引数の二つ目以降に、渡したい引数を一つずつ指定する。
applyの場合は二つ目の引数にいっぺんに渡したい引数を配列で指定する。

具体的には

console.log( Array.prototype.join.call(document.links,'\n') );

みたいに、配列っぽい振る舞いをするオブジェクトに配列用のメソッドを使えるようになる。便利。

ちなみに、素直にdocument.links.join('\n')としようとしても、document.linksがArrayのprototypeを継承してないからエラーになる。