我的漫漫程序之旅

          專注于JavaWeb開發(fā)
          隨筆 - 39, 文章 - 310, 評(píng)論 - 411, 引用 - 0
          數(shù)據(jù)加載中……

          Prototype1.6 實(shí)戰(zhàn)03 <類的創(chuàng)建及繼承>

          <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)
                  
          {
                      
          //相當(dāng)于this.name = name;
                      $super(name);
                      
          this.age = age;
                  }
          ,
                  
          //在創(chuàng)建時(shí)添加訪求
                  getAge : function()
                  
          {
                      
          return this.age;
                  }

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

                }
          );

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

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

                }

                );
                
          //蛇繼承自動(dòng)物
                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()
                  
          {
                      
          //將實(shí)參轉(zhuǎn)換為數(shù)組
                      var args = $A(arguments);
                      
          //查看傳入?yún)?shù)是否都是動(dòng)物類的實(shí)例
                      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) 評(píng)論(0)  編輯  收藏 所屬分類: JavaScript

          主站蜘蛛池模板: 辉县市| 阜新市| 霸州市| 西城区| 渭南市| 漳平市| 搜索| 延津县| 福建省| 即墨市| 阿克陶县| 霍山县| 卢氏县| 江安县| 黑水县| 保靖县| 丹寨县| 鹤壁市| 怀化市| 茶陵县| 新郑市| 张家港市| 随州市| 巴东县| 北安市| 秦安县| 万州区| 景德镇市| 西乌| 栾川县| 富宁县| 富阳市| 德昌县| 景谷| 吉水县| 深水埗区| 鹤壁市| 许昌市| 云浮市| 五峰| 葵青区|