模塊模式的思路 就是 就是單例模式添加私有屬性和私有方法,減小全局變量的使用。app
簡單的代碼結構:函數
var singleMode = (function(){ // 建立私有變量 var privateNum = 100; // 建立私有函數 function privateFunc(){ // 實現本身的業務邏輯代碼 } // 返回一個對象包含公有方法和屬性 return { publicMethod1: publicMethod1, publicMethod2: publicMethod1 }; })();
若是咱們必須建立一個對象並對某些對象進行初始化時,同時還要公開訪問這些私有數據的方法,name這個時候咱們就能夠使用模塊模式了。this
加強的模塊模式的使用場合是:適合那些單列必須是某種類型的實例,同時還必須添加某些屬性或方法對其加以加強的狀況。spa
function CustomType() { this.name = "GaoSir"; }; CustomType.prototype.getName = function(){ return this.name; } var application = (function(){ // 定義私有 var privateA = "privateA"; // 定義私有函數 function privateMethodA(){}; // 實例化一個對象後,返回該實例,而後爲該實例增長一些公有屬性和方法 var object = new CustomType(); // 添加公有屬性 object.publicA = "publicA"; // 添加公有方法 object.publicB = function(){ return privateA; } // 返回該對象 return object; })();
console.log(application.publicA);// publicAprototype
console.log(application.publicB()); // privateAcode
console.log(application.name); // GaoSir對象
console.log(application.getName());// GaoSirblog