javascriptでSingleton

javascriptでSingletonってできんのかな?」と聞かれ、調べてみたら、二年半も前に既に色んな人が書いていた。
http://la.ma.la/blog/diary_200508141140.htm
http://d.hatena.ne.jp/naoya/20050813/1123924312
などなど

newを禁止するために、コンストラクタでエラーを返す方法が色んな所で紹介されていたけど、これはどうなんでしょう?
java・・・コンストラクタがprivateになっているので、コンパイルの時点で気づくことができるし、今ならEclipseが教えてくれる。
javascript・・・そのクラスを使って(ドキュメントを読まない)実装者がnewを書いても何のエラーにもならず、ブラウザで実行してみて、何が起こってるか分からなくて、デバッグしていって始めて気づく。


そういう意味では、malaさんのページの一番上のサンプルが完成形ではないのかなと思った。
今までよく分かっていなかったcalleeの意味も、こういう具体例を通すことでよく分かったし、一石二鳥な調べものだった。