JavaScriptのプロトタイプ

いくらかJavaScriptオブジェクト指向について勉強。
重要なのは一点。あるインスタンスの存在しないプロパティを参照すると、そのインスタンスのプロトタイプのプロパティが参照される、と言うこと。
で、そのプロトタイプはどこで設定するのか? newキーワードを使って関数を呼び出すと、まず空っぽのインスタンスが作成され、次に関数のprototypeプロパティがインスタンスのプロトタイプになり、最後にthisキーワードにインスタンスが代入されて、関数が実行される。
ついでに関数のprototypeプロパティのconstructorプロパティには関数自身がデフォルトで設定されている。
プロトタイプベースと言う割には迂遠な方法に思えるが、Javaのコンストラクタっぽくするためにこんな実装になったんだろうか?