1. 程式人生 > >JavaScript_11設計模式(單體模式【五】)簡單單體和閉包單體

JavaScript_11設計模式(單體模式【五】)簡單單體和閉包單體

<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>New Web Project</title>
    <script type="text/javascript" charset="UTF-8">
        //單體模式:(singleton)
        //1.簡單單體模式:
     /*
        var Singleton={
            attr1:true,
            attr2:10,
            method1:function(){
                alert('我是方法一');
            },
            method2:function(){
                alert('我是方法二');
            }
                        
        };
        
      */  
      //  alert(Singleton.attr1);
        
        //單體的作用:2.劃分名稱空間(區分程式碼)Ext.Manager.attr1/method1
        /*
        //Ext.Array.some();
      //  MyCode
        var BHX={};
        
        BHX.Singleton={
              attr1:true,
            attr2:10,
            method1:function(){
                alert('我是方法一');
            },
            method2:function(){
                alert('我是方法二');
            }
        };
        BHX.Singleton.method1();
        */
        
        //2.借用閉包建立單體:閉包主要的目的,保護資料,不受外界所幹擾。
        //名稱空間
       var BHX={};
        BHX.Singleton=(function test(){
            //新增自己的私有成員。
            
            var a1=true;
            var a2=10;
           var f1=function(){
               
               alert('f1');
           };
            var f2=function(){
               
               alert('f2');
           };
            
            //把塊級作用域的執行結果,直接賦給單體物件。
          return {
              
                attr1:a1,
                 attr2:a2,
            method1:function(){
               return f1();
            },
            method2:function(){
                 return f2();
            }
              
          };
                          
        })();
        
        alert(BHX.Singleton.attr1);
        BHX.Singleton.method1();
                      
    </script>
</head>
<body>
    <h1>New Web Project Page</h1>
</body>