私はしばらくの間、モジュールパターンと呼ばれるAddyOsmaniから入手した2つのバージョンのJavaScriptパターンを使用してきました。ここでそれを見る
このパターンの最初のバージョンは、オブジェクトリテラルを使用します。
var x = {
b: function() {
return 'text';
},
c: function() {
var h = this.b();
h += ' for reading';
}
}
alert(x.b()) // alerts text.
他のバージョンは自己実行機能を使用します:
var y = (function() {
var first = 'some value';
var second = 'some other value';
function concat() {
return first += ' '+second;
}
return {
setNewValue: function(userValue) {
first = userValue;
},
showNewVal: function() {
alert(concat());
}
}
})();
y.setNewValue('something else');
y.showNewVal();
上記の例を考えると、これらの2つのパターン(イベントリスナーを考慮しない)のどちらかがガベージコレクションに適していますか(それらが自分自身を参照する方法を考えると)?