Kapselung in Javascript-Modul-Muster
Ich habe diesen Link gelesenhttp://addyosmani.com/largescalejavascript/#modpattern
Und sah das folgende Beispiel.
<code>var basketModule = (function() { var basket = []; //private return { //exposed to public addItem: function(values) { basket.push(values); }, getItemCount: function() { return basket.length; }, getTotal: function(){ var q = this.getItemCount(),p=0; while(q--){ p+= basket[q].price; } return p; } } }()); basketModule.addItem({item:'bread',price:0.5}); basketModule.addItem({item:'butter',price:0.3}); console.log(basketModule.getItemCount()); console.log(basketModule.getTotal()); </code>
Darin heißt es: "Das Modulmuster ist ein beliebtes Designmuster, das 'Privatsphäre', Status und Organisation unter Verwendung von Verschlüssen zusammenfasst." Wie unterscheidet es sich von der folgenden Beschreibung? Kann Privatsphäre nicht einfach mit Funktionsumfang durchgesetzt werden?
<code>var basketModule = function() { var basket = []; //private this.addItem = function(values) { basket.push(values); } this.getItemCount = function() { return basket.length; } this.getTotal = function(){ var q = this.getItemCount(),p=0; while(q--){ p+= basket[q].price; } return p; } } var basket = new basketModule(); basket.addItem({item:'bread',price:0.5}); basket.addItem({item:'butter',price:0.3}); </code>