《javascript设计模式与开放实践》学习(四)私有变量

为了避免全局变量被污染,可采用加命名空间和闭包封装方式进行私有化。

一、使用命名空间

将某个变量变成某个命名空间下私有变量

var MyApp={};
    MyApp.namespace=function (name) {
        var parts=name.split('.');
        var current=MyApp;
        for(var i in parts){
            if(!current[parts[i]]){
                current[parts[i]]={};
            }
            current=current[parts[i]];
        }
    };
    MyApp.namespace('event');
    MyApp.namespace('dom.style');

    console.dir(MyApp);

上述等价于

var Myapp={
        event:{},
        dom:{
            style:{}
        }
};

这样就定义了MyApp命名空间下的两个属性event和dom.

二、使用闭包

 var user=(function () {
        var _name='ls',
        _age=27;
        return{
            getUserInfo:function () {
                return _name+'_'+_age;
            }
        }
    })();
    console.log(user.getUserInfo()) ;

将name和age属性封装起来,外部无法访问。

posted @ 2016-09-28 22:52  SpeedHorse  阅读(180)  评论(0编辑  收藏  举报