0
私はjavascriptモジュールパターンを認識していますが、私は2種類のモジュールパターンを使用しており、アーキテクチャの観点からそれらの違いを知りたいと思います。Javascriptモジュールパターン - 違い
// PATTERN ONE
var module = (function() {
var _privateVariable = '';
var _privateMethod = function() {
var _this = this;
// private method def
// can use _this._privateVariable
console.log('Inside a private method!');
};
var publicMethod = function() {
var _this = this;
// public method def
// can use _this._privateVariable
// can call _privateMethod();
};
return {
publicMethod: publicMethod
};
})();
// PATTERN TWO
var module = (function() {
var wrapper = {
_privateVariable: '',
_privateMethod: function() {
var _this = this;
// private method def
// can use _this._privateVariable
console.log('Inside a private method!');
},
publicMethod: function() {
var _this = this;
// public method def
// can use _this._privateVariable
// can call _privateMethod();
},
};
return {
publicMethod: wrapper.publicMethod
};
})();
これらの両方のパターンは、それらのいずれかを使用して有意差がある私
- のために同じことを行うように見えますか?
- これらのパターンの1つを避ける必要がありますか?
- どちらかの方が良い方法がありますか?
唯一の違いは、バージョン2ではメソッド自体の代わりにメソッドの結果を返すことです。 –
esモジュールを使用することもできますが、 –
のバーベルが必要です。2番目のスニペットは、「エクスポート」する代わりに* public * method()を呼び出します。 – Bergi