我的漫漫程序之旅

          專注于JavaWeb開發
          隨筆 - 39, 文章 - 310, 評論 - 411, 引用 - 0
          數據加載中……

          Prototype1.6 實戰03 <類的創建及繼承>

          <HTML>
           
          <HEAD>
            
          <TITLE> Class (Object-Oriented) </TITLE>
          <script src="prototype.js" type="text/javascript"></script>
           
          </HEAD>
           
          <BODY>
            
          <script>
                
          //Person類
                var Person = Class.create(
                
          {
                  initialize : 
          function(name)
                  
          {
                      
          //屬性在這初始化
                      this.name = name;
                  }
          ,
                  
          //方法初始化
                  getName : function()
                  
          {
                      
          return this.name;
                  }

                }
          );
                
          //User類繼承自Person
                var User = Class.create(Person,
                
          {
                  initialize : 
          function($super,name,age)
                  
          {
                      
          //相當于this.name = name;
                      $super(name);
                      
          this.age = age;
                  }
          ,
                  
          //在創建時添加訪求
                  getAge : function()
                  
          {
                      
          return this.age;
                  }

                  
                }
          );
                
          //也可以通過addMethods方法來添加方法
                User.addMethods({
                  show : 
          function()
                  
          {
                      alert(
          "username:" + this.name + ",age:" + this.age);
                  }

                }
          );

                
          var me = new User("zdw",99);
                alert(me.getName() 
          + "," + me.getAge());
                me.show();
                
          //動物類
               var Animal = Class.create(
                
          {
                  initialize : 
          function(name,sound)
                  
          {
                      
          this.name = name;
                      
          this.sound = sound;
                  }
          ,

                  speak : 
          function()
                  
          {
                      alert(
          this.name + " says: " + this.sound  + "!");
                  }

                }

                );
                
          //蛇繼承自動物
                var Snake = Class.create(Animal,
                
          {
                  initialize : 
          function($super,name)
                  
          {
                      $super(name,
          "hissssssssssss");
                  }

                }
          );
                
          //眼鏡蛇
                var ringneck = new Snake("Ringneck");
                ringneck.speak();
                
          //響尾蛇
                var rattlesnake = new Snake("Rattler");
                rattlesnake.speak();
               
          //重寫自己的迭代
                var AnimalPen = Class.create(Enumerable,
                
          {
                  initialize : 
          function()
                  
          {
                      
          //將實參轉換為數組
                      var args = $A(arguments);
                      
          //查看傳入參數是否都是動物類的實例
                      if(!args.all(function(arg){return arg instanceof Animal}))
                          
          throw "Only animals in here!";
                      
          this.animals = args;
                  }
          ,
                   _each : 
          function(iterator)
                   
          {
                      
          return this.animals._each(iterator);
                   }

                }
          );

                
          var snakePen = new AnimalPen(ringneck,rattlesnake);
                snakePen.invoke('speak');
            
          </script>
           
          </BODY>
          </HTML>


          posted on 2008-07-23 13:01 々上善若水々 閱讀(222) 評論(0)  編輯  收藏 所屬分類: JavaScript

          主站蜘蛛池模板: 达尔| 广饶县| 温宿县| 贵港市| 吉安县| 临洮县| 方城县| 英超| 扶余县| 石门县| 道真| 翼城县| 天长市| 瑞金市| 浦城县| 庐江县| 莱州市| 莒南县| 大丰市| 司法| 临夏县| 上犹县| 临沭县| 同德县| 平乐县| 寿阳县| 秭归县| 卢龙县| 柳州市| 甘谷县| 锦州市| 合江县| 大荔县| 六安市| 宜都市| 汶上县| 贵州省| 个旧市| 昌都县| 青龙| 卢龙县|