標籤:
//Module 模式 閉包自包含模組var testModule = (function(){ var counter = 0; return { incrementCounter: function(){ return ++counter; }, resetCounter: function(){ console.log("counter value prior to reset: " + counter); counter = 0; } };})();testModule.incrementCounter();testModule.incrementCounter();testModule.resetCounter();//包含命名空間、共有和私人變數的Module模式var myNamespace = (function(){ var myPrivateVar = 0; var myPrivateMehod = function(foo){ console.log(foo); }; return { myPublicVar: "foo", myPublicFunction: function(bar){ myPrivateVar++; myPrivateMehod(bar); } }})();myNamespace.myPublicFunction('hello world!');//用模組化思想實現購物車var basketModule = (function(){ //私人 var basket = []; function doSomethingPrivate(){ console.log("doSomethingPrivate run"); } function doSomethingElsePrivate(){ console.log("doSomethingElsePrivate run"); } //返回暴露的共有對象 return { addItem: function(values){ basket.push(values); }, getItemCount: function(){ return basket.length; }, doSomething: doSomethingPrivate, getTotal: function(){ var itemCount = this.getItemCount(); total = 0; while(itemCount--){ total+= basket[itemCount].price; } return total; }, }})();basketModule.addItem({ item: "bread", price: 0.5});basketModule.addItem({ item: "dss", price: 0.5});console.log(basketModule.getItemCount());console.log(basketModule.getTotal());
著作權聲明:本文為博主原創文章,未經博主允許不得轉載。
JavaScrip模組化模式寫法