コンストラクタ関数を使わずにオブジェクト生成

サイ本の写経をしてて、思い立って作ってみた。
四角が画面の中を飛び回るやつ。「Start」を連打するとたくさん四角が出てきてなんか面白い。
http://rrmailer.ddo.jp/~hashimoto/js-train/multiBounceDiv.html
http://gohannnotomo.pbworks.com/f/multiBounceDiv.html<2009/06/28 リンク先変更>

飛び回る四角のオブジェクトはクロージャ?で生成している。呼び出し側でnewを使わなくてもいいし、コンストラクタ関数を使うやり方よりもわかりやすいと思う。
<追記>
なんかこれってクロージャと言わない気がしてきた*1のでタイトルを変えました。
元のタイトルは「[Javascript]クロージャを使ってオブジェクト生成」です。id:kiwanamiさんに解説をお願いしたいところ。
<追記2>
やっぱり「クロージャではない」が正しいようです。*2「ファクトリメソッド」などの呼び方が適切かと思います。でもこれはJavaデザインパターンで言うところのファクトリメソッドとちがって内部的にnewを使っていないので、この呼び方で用語として正しいかどうかはやっぱり自信がないです。単に「オブジェクトを生み出すメソッド」という意味でこの言葉を使うならまったく問題ないですが。それを言うなら「オブジェクトを生成して返すメソッド」を「コンストラクタ」と定義するなら、これも「コンストラクタ」と呼べそうです。「newで呼ばれないコンストラクタ」とか言うとちょっと面白そうです。用語の定義の問題だけなので実用上はどっちでもいい話ですが。

*1:関数でなくオブジェクトを返しているので

*2:1つのスコープに複数の処理が入っているので http://d.hatena.ne.jp/brazil/20060131/1138692196