JavaScript_12设计模式(单体模式【五、六】)惰性单体和分支单体

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>New Web Project</title>
    <script type="text/javascript" charset="UTF-8">
        //惰性单体(和闭包单体有一些相似的地方)
      /*  
        //命名空间
        var Ext={};
        
        Ext.Base=(function(){
            //私有变量,控制返回单体对象。
            var uniqInstance;//返回undifind
            
            //需要一个构造器,init 初始化单体对象的方法。
            function init(){
                 //私有成员变量
            var a1=10;
            var a2=true;
            var fn1=function(){alert('fn1')};
            var fn2=function(){alert('fn2')};
       
                return{
                    attr1:a1,
                    attr2:a2,
                    method1:function(){
                        return fn1();
                    },
                      method2:function(){
                        return fn2();
                    }
                };
            
            }
            
        
           return{
              getInstance:function(){
                 if(!uniqInstance){//如果不存在,创建单体实列。
                    uniqInstance=init(); 
                 }
                 return uniqInstance;
                 
             } 
               
           };   
                   
        })();
        
        alert(Ext.Base.getInstance().attr1);
        
        Ext.Base.getInstance().method1();
        
        */
        
        //分支单体(判断程序的分支<浏览器差异检测 >)
            
            var Ext={};
          //  var def=true;  //FE
          var def=false;//IE
          
            Ext.More=(function(){
                var objA={//提供火狐浏览器内部的一些配置
                   attr1:"FE属性1"
                   
                    //属性1
                    //属性2
                    //方法1
                    //方法2
                    
                    
                };
                var objB={//提供IE浏览器内部的一些配置
                       attr1:"IF属性2"
                    //属性1
                    //属性2
                    //方法1
                    //方法2
                    
                    
                };
                return(def) ?objA:objB;
                
            })();
            
            alert(Ext.More.attr1);
        
    </script>
</head>
<body>
    <h1>New Web Project Page</h1>
</body>
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值