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

转载于:https://www.cnblogs.com/GallopingSnail/p/5918266.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值