$(document).ready();について

jQuery使用時に以下の書き方をすると、どれを使ってもDOM構築後のタイミングで実行したい処理を実行できる。

$(document).ready(function(){
/*実行したい処理*/
});

$().ready(function(){
/*実行したい処理*/
});

$(function(){
/*実行したい処理*/
});

以下のように複数回実行した場合は$(function(){/**/});を実行した順に、
中の関数が実行されるので以下の場合は、DOM構築後にconsoleに改行を挟んで1,2,3と順番に出る。

$(function(){
console.info(1);
});
$(function(){
console.info(2);
});
$(function(){
console.info(3);
});

自信がないので、一応、コードの該当箇所を確認

  • jQuery.fn.ready 2282-2297
    • jQuery.isReady==trueの場合、渡された関数をdocumentをthis、jQueryを第一引数として即実行。
    • jQuery.isReady==falseの場合、jQuery.readyで順次実行される場合に、documentをthis、jQueryを第一引数として実行されるように無名関数で包んだ上でjQuery.readyListにpush。
  • jQuery.ready 2304-2324
    • jQuery.isReady==falseの場合のみメインの処理を実行。jQuery.isReadyにtrueを代入。
    • jQuery.readyListという配列に入っている関数を順繰りに、documentをthisとして呼び出す。
  • bindReady 2329-2387
    • DOM構築後のタイミングでjQuery.ready関数を実行するようにイベントを登録するなどする(一度だけ)。

「$(function(){/**/});を実行した順に、中の関数が実行される」というのは確認できた。
「documentをthis、jQueryを第一引数として実行される」ことは初めて知ったがどうも使いどころが思い浮かばない。