模塊模式簡述
模塊模式是為單例模式添加私有變量和私有方法,并減少全局變量的使用尸执;如下就是一個模塊模式的代碼結(jié)構(gòu):
var singleMode = (function(){
// 創(chuàng)建私有變量
var privateNum = 112;
// 創(chuàng)建私有方法
function privateFunc(){},
// 創(chuàng)建公有方法
function publicMethod1(){},
function publicMethod2(){},
// 返回一個對象包含公有方法和屬性
return {
publicMethod1: publicMethod1,
publicMethod2: publicMethod2
};
})();
如上代碼家凯,模塊模式使用了一個返回對象的匿名函數(shù)。在這個匿名函數(shù)內(nèi)部如失,先定義了私有變量和函數(shù)绊诲,供內(nèi)部函數(shù)使用,然后將一個對象字面量作為函數(shù)的值返回褪贵,返回的對象字面量中只包含可以公開的屬性和方法掂之。這樣的話,可以提供外部使用該方法脆丁;由于該返回對象中的公有方法是在匿名函數(shù)內(nèi)部定義的世舰,因此它可以訪問內(nèi)部的私有變量和函數(shù)。
模塊模式使用場景
創(chuàng)建一個對象時槽卫,需要進(jìn)行內(nèi)部初始化跟压,同時對內(nèi)部屬性跟方法有訪問權(quán)限限制,就需要使用模塊模式了歼培。