Javascript 設(shè)計(jì)模式 -- Module(模塊)模式

個(gè)人博客遷移到biubu.cn,此處停更.請(qǐng)移步。

  • 1 . 公有方法改變私有變量 :

    • Module 模式使用閉包封裝"私有" 狀態(tài)和組織.它提供了一中包裝混合公有/私有方法和變量的方式,防止其泄露到全局作用域,防止與別的開發(fā)人員的接口發(fā)生沖突,通過該模式,只需返回一個(gè)公有API,而其他的一切則都維持在私有閉包里.我們來看一段代碼:
var testModule = (function () {
    var count = 0; // 私有變量
    return { // 返回一個(gè)對(duì)象
        incrementCount: function () { // 公有方法
            return ++count;
        },
        reserCount: function () { // 公有方法
            console.log ( "重置前 count 的值為 : " + count ); // 輸出內(nèi)容為 :  重置前 count 的值為 : 1
            count = 0;
        }
    };
})();

testModule.incrementCount ();   // 公有 API 調(diào)用, 執(zhí)行 ++count;
testModule.reserCount ();   // 公有 API 調(diào)用, 執(zhí)行 count = 0;

  • 通過以上的代碼可以看出,要修改count的值,除了上述兩個(gè)公有方法外,別無他法.這就是模塊化的好處,count 變量是完全與全局作用域隔離的,因此他表現(xiàn)的就像是一個(gè)似有變量,既不會(huì)污染全局變量,又不會(huì)與其他的變量沖突.
  • 2 . 調(diào)用私有變量和方法的公有函數(shù)

var myNameSpace = (function () {
    var myPrivateVar = 0;
    var myPrivateMethod = function ( params ) {
        console.log ( params );     // 公有方法(myPublicMethod)調(diào)用私有方法(myPrivateMethod);執(zhí)行公有方法,改變后的私有變量值為 1
    };
    return {
        myPublicVar: 'params',
        myPublicMethod: function ( bar ) {
            myPrivateVar++;
            myPrivateMethod ( '公有方法(myPublicMethod)調(diào)用私有方法(myPrivateMethod);' + bar + ', 累加后的私有變量值為 ' + myPrivateVar );
        }
    };
}) ();
myNameSpace.myPublicMethod ( '執(zhí)行公有方法' ); // 公有方法(myPublicMethod)調(diào)用私有方法(myPrivateMethod);執(zhí)行公有方法, 累加后的私有變量值為 1
console.log ( '公有變量(myNameSpace.myPublicVar)為 : ' + myNameSpace.myPublicVar ); //公有變量(myNameSpace.myPublicVar)為 : params
console.log ('訪問私有變量結(jié)果為 : ' + myNameSpace.myPrivateVar ); // 訪問私有變量結(jié)果為 : undefined

通過上面的例子,應(yīng)該對(duì)私有變量、公有變量和公有變量調(diào)用似有變量和私有屬性有所了解了吧.

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容