前端开发

Javascript 设计模式 -- Module(模块)模式

2018-04-14  本文已影响1人  WestLonely
var testModule = (function () {
    var count = 0; // 私有变量
    return { // 返回一个对象
        incrementCount: function () { // 公有方法
            return ++count;
        },
        reserCount: function () { // 公有方法
            console.log ( "重置前 count 的值为 : " + count ); // 输出内容为 :  重置前 count 的值为 : 1
            count = 0;
        }
    };
})();

testModule.incrementCount ();   // 公有 API 调用, 执行 ++count;
testModule.reserCount ();   // 公有 API 调用, 执行 count = 0;

var myNameSpace = (function () {
    var myPrivateVar = 0;
    var myPrivateMethod = function ( params ) {
        console.log ( params );     // 公有方法(myPublicMethod)调用私有方法(myPrivateMethod);执行公有方法,改变后的私有变量值为 1
    };
    return {
        myPublicVar: 'params',
        myPublicMethod: function ( bar ) {
            myPrivateVar++;
            myPrivateMethod ( '公有方法(myPublicMethod)调用私有方法(myPrivateMethod);' + bar + ', 累加后的私有变量值为 ' + myPrivateVar );
        }
    };
}) ();
myNameSpace.myPublicMethod ( '执行公有方法' ); // 公有方法(myPublicMethod)调用私有方法(myPrivateMethod);执行公有方法, 累加后的私有变量值为 1
console.log ( '公有变量(myNameSpace.myPublicVar)为 : ' + myNameSpace.myPublicVar ); //公有变量(myNameSpace.myPublicVar)为 : params
console.log ('访问私有变量结果为 : ' + myNameSpace.myPrivateVar ); // 访问私有变量结果为 : undefined

通过上面的例子,应该对私有变量、公有变量和公有变量调用似有变量和私有属性有所了解了吧.

上一篇下一篇

猜你喜欢

热点阅读