首页 > 代码库 > 《javascript设计模式与开放实践》学习(四)私有变量

《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属性封装起来,外部无法访问。

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