単一のインスタンスと複数のインスタンスの観点から、モジュール パターンに続く余分なコード行をすべて記述するのではなく、コンストラクター本体で定義されたメソッドとプロパティを持つ標準のコンストラクターを使用するのはなぜでしょうか?
モジュールパターンサンプル: http: //jsfiddle.net/T3ZJE/1/
var module = (function () {
// private variables and functions
var foo = 'bar';
// constructor
var module = function () {
};
// prototype
module.prototype = {
constructor: module,
something: function () {
}
};
// return module
return module;
})();
var my_module = new module();
console.log(my_module)
コンストラクターのサンプル: http://jsfiddle.net/EuvaS/2/
function Module(){
// private variables and functions
var foo = 'bar';
//public methods
this.something = function () {
}
}
var my_module = new Module();
console.log(my_module);
私にとって、最終結果はほとんど同じです。どちらもパブリック プロパティとメソッドを持つことができ、パブリック メソッドによってアクセスできる「プライベート」変数とメソッドを持つことができます。
どちらも、シングルトンに対してパブリック/プロトタイプメソッドを1回定義し、オブジェクトの複数のインスタンス/クローンに対して複数回定義します。
何か不足していますか?違いはなんですか?