パッケージ名付与の意味

前提知識

前提としてJavaScriptには「Ajaxで読み込んだHTMLで宣言された関数や変数は参照できない場合がある」という制約があります。つまり、関数や変数は、ブラウザの機能でページを遷移した時点で読み込まれていなくてはなりません。

例えば、下記のページをAjaxで読み込んで「push here」をクリックすると「関数alert_itが見つかりません」というエラーが発生します。

<span onclick='alert_it("hello")'>push here</span>
<script>
  alert_it = function(it){alert(it);}
</script>

ただし、上記の制約には例外があります。 あらかじめ読みこまれている変数が参照している値については、どこからでも参照することができるのです。

例えば非Ajax読み込み(画面遷移)時に下記の宣言をします。

<html>
  <head>
    <script>alert_it = null;</script>
  </head>
  <body>
  ...
  </body>
</html>

この状態であれば、あらかじめalert_itという変数は宣言されるので、その後Ajax読み込みをして「push here」を押してもエラーが発生しなくなります。

Rubricksのパッケージ名

Rubricksによってパッケージ名「rubricks.bbs」は下記のように定義され、画面遷移時に読み込まれます。

rubricks = {};
rubricks.bbs = {};

パッケージ名の実体はハッシュです。 Ajax読み込み時にこのハッシュの中に関数や変数を入れ込むようにすることで、上記の制約を避け、Ajax読み込み時に宣言された関数を自由に呼び出しできるようにしているのです。