隨筆-314  評論-209  文章-0  trackbacks-0

          研究發(fā)現(xiàn):屬性(變量)可分為三類(對象屬性、全局變量和局部變量)
          對象屬性:聲明時以“this.”開頭,只能被“類的實例”即對象所調(diào)用,不能被“類內(nèi)部(對外不對內(nèi))”調(diào)用;全局變量:聲明時直接以變量名開頭,可以任意調(diào)用(對內(nèi)對外);局部變量:只能被

          “類內(nèi)部(對內(nèi)不對外)”調(diào)用。

           

          JS函數(shù)的聲明與訪問原理

          <script type="text/javascript">  
          //類  
          var testClass = function(){  
            //對象屬性(對外不對內(nèi),類調(diào)用)  
            this.age ="25";  
            //全局變量(對內(nèi)對外)  
            name="jack";  
            //局部變量(對內(nèi)不對外)
            var address = "beijing";
              
            //全局函數(shù)(對內(nèi)對外)  
            add = function(a,b){  
              //可訪問:全局變量和局部變量  
              multiply(a,b);  
              return a+b;  
            }  
            //實例函數(shù)(由類的對象調(diào)用)  
            this.minus = function(a,b){  
              //可以訪問:對象屬性、全局變量和局部變量  
              return a-b;  
            }  
            //局部函數(shù)(內(nèi)部直接調(diào)用)  
            var multiply = function(a,b){  
              //只能訪問:全局變量和局部變量  
              return a*b;  
            }  
          }  
           
           
          //類函數(shù)(由類名直接調(diào)用)  
          testClass.talk= function(){  
            //只能訪問:全局變量和全局函數(shù)  
            this.what = function(){  
              alert("What can we talk about?");  
              about();  
            }  
              
            var about = function(){  
              alert("about name:"+name);
              alert("about add(1,1):"+add(1,1));
            }  
          }  
           
           
          //原型函數(shù)(由類的對象調(diào)用)  
          testClass.prototype.walk = function(){  
            //只能訪問:全局變量和全局函數(shù)  
            this.where = function(){  
              alert("Where can we go?");
              go();  
            }  
              
            var go = function(){  
              alert("go name:"+name); 
              alert("go add(1,1):"+add(1,1));
            }  
          }  
          </script> 


          下面看看如何調(diào)用:

          <script type="text/javascript">  
          //獲取一個cbs類的實例  
          var cbs= new testClass();  
          //調(diào)用類的對象屬性age  
          alert("age:"+cbs.age);  
           
          //獲取類函數(shù)talk的實例  
          var talk = new testClass.talk();
          //調(diào)用類函數(shù)的實例函數(shù)  
          talk.what();  
           
          //獲取原型函數(shù)walk的實例  
          var walk = new cbs.walk();  
          //調(diào)用原型函數(shù)的實例函數(shù)  
          walk.where();  
          </script> 

          posted on 2011-07-09 11:34 xzc 閱讀(1014) 評論(2)  編輯  收藏 所屬分類: XMLWeb

          評論:
          # re: js 高級編程[未登錄] 2011-12-22 09:36 | xzc
          function myClass(id, name)
          {
          this.ID = id;
          this.Name = name;
          }

          myClass.prototype =
          {
          showMessage: function()
          {
          alert("ID: " + this.ID + ", Name: " + this.Name);
          },
          showMessage2: function()
          {
          alert("Method2");
          }
          }

          var obj1 = new myClass(1, "johnson");
          obj1.showMessage();
          obj1.Name="John";
          obj1.showMessage();
          var obj2 = new myClass(2, "Amanda");
          obj2.showMessage();
            回復(fù)  更多評論
            
          # re: js 高級編程[未登錄] 2011-12-22 09:36 | xzc
          function subClass(){ }
          subClass.prototype =
          {
          Name: "sub"
          }

          function myClass()
          {
          //構(gòu)造函數(shù)
          }

          myClass.prototype =
          {
          ID: 1,
          Name: "johnson",
          SubObj: new subClass(),
          showMessage: function()
          {
          alert("ID: " + this.ID + ", Name: " + this.Name + "SubObj.Name:" + this.SubObj.Name);
          }
          }

          var obj1 = new myClass();
          obj1.SubObj.Name = "XXX";
          obj1.showMessage();
          var obj2 = new myClass();
          obj2.showMessage();  回復(fù)  更多評論
            
          主站蜘蛛池模板: 获嘉县| 平远县| 梁山县| 吴江市| 伊金霍洛旗| 沙河市| 洛南县| 杨浦区| 乡城县| 且末县| 交口县| 繁峙县| 琼结县| 木里| 互助| 清水县| 喀喇沁旗| 宿松县| 环江| 安康市| 内黄县| 凉城县| 新竹县| 兴业县| 信丰县| 房产| 扶绥县| 浑源县| 神农架林区| 武汉市| 阿勒泰市| 阳春市| 碌曲县| 涟水县| 灵山县| 古蔺县| 大关县| 宜良县| 赫章县| 融水| 桃园县|