javascript 单体模式

/**
 * Created by lenovo on 2015/10/3.
 */
/*
* 单体模式
*划分命名空间
*
* 1简单单体模式
* */
var singleton={
    attr1:true,
    attr2:10,
    method1:function(){

    }
};
//2借用闭包创建单体 主要目的:保护数据
BHX.Singleton=(function(){
    //添加自己的私有成员
    var a1=true;
    var a2=10;
    var f1=function(){

    }
    //把块级作用域里的执行结果赋值给单体对象
    return {
        attr1:a1,
        attr2:a2,
        method1:function(){

        }
    }
})();


//3惰性单体
var Ext={};
Ext.base=(function(){
    //私有变量 控制返回的单体对象
    var uniqInstance;

    //私有变量成员
    function init() {
        var a1 = 10;
        var a2 = true;
        var fn1 = function () {
            alert('fn1');
        }
        return {
            attr1:a1,
            attr2:a2,
            method1:function(){
                return fn1();
            }
        }
    }

    return{
        getInstance:function(){
            if(!uniqInstance){  //如果不存在 创建单体实例
                uniqInstance=init();
            }
            return uniqInstance;
        }
    }
})();

//4 分支单体(判断程序的分支)浏览器差异检测
var Ext={};
var def=true;
Ext.More=(function(){
    var objA={
        attr1:'firefox attr1',
        attr2:'firefox attr2'
    };
    var objB={
        attr1:'chrome attr1',
        attr2:'chrome attr2'
    };
    return (def)?objA:objB;
})()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值