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>

Antworten auf die Frage(1)

Ihre Antwort auf die Frage