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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《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设计模式与开放实践》学习私有变量的主要内容,如果未能解决你的问题,请参考以下文章

《javascript设计模式与开放实践》学习javascript实现多态2

《javascript设计模式与开放实践》学习对象方法的借用

《javascript设计模式与开放实践》学习惰性单例模式

《javascript设计模式与开放实践》学习高阶函数的应用

《javascript设计模式与开放实践》学习Function.prototype.bind

《javascript设计模式与开放实践》学习函数的闭包1