java學習

          java學習

           

          javascript面向對象創建對象的五種方法

          <html>
              <head>
              
              </head>
              <body>
                  <script type="text/javascript">
                  //工廠模式創建對象,缺點是不能知道對象的類型
                      function createUser(name,age){
                          var o = {};
                          o.name=name;
                          o.age=age;
                          o.say=function(){
                              alert(this.name);
                          }
                          return o;
                      }
                      //user1 = createUser("tom",11);
                      //alert(user1.name);
                      //user2 = createUser("tom1",111);
                      //user2.say();
                      
                      
                      //構造函數創建對象。缺點是對象中的方法需要寫在構造函數外面,有可能寫很多方法
                      
                      function user(name,age){
                          this.name=name;
                          this.age = age;
                          this.say = say;
                      }
                      function say(){
                          alert(this.name);
                      }
                      //var user1 = new user("tom",44);
                      //var user2 = new user("lily",66);
                      //alert(user1.name);
                      //user2.say();
                      //alert(user1 instanceof user);
                      
                      
                      //原型模式,缺點是不能有構造函數
                      
                      function user(){}
                      user.prototype.name='';
                      user.prototype.age = 0;
                      user.prototype.address = [];
                      user.prototype.say = function(){
                          alert(this.name);
                      }
                      var user1 = new user();
                      user1.name = 'tom';
                      user1.age = 11;
                      user1.address = [1,2];
                      //user1.address.push("1","2");
                      var user2 = new user();
                      user2.name = 'lily';
                      user2.age = 22;
                      user2.address = [3,4];
                      //user2.address.push("3","4");
                      //alert(user1.name);
                      //alert(user1.age);
                      //alert(user1.address);
                      //user1.say();
                      //alert(user2.name);
                      //alert(user2.age);
                      //alert(user2.address);
                      //user2.say();
                      
                      //構造函數+原型模式,構造方法構造屬性,原型模式構造方法
                      function user(name,age){
                          this.name = name;
                          this.age = age;
                          this.address = ['1','2'];
                      }
                      user.prototype.say = function(){
                          alert(this.name);
                      }
                      var user1 = new user('tom',11);
                      var user2 = new user('lily',22);
                      user1.address.push('a','b');
                      user2.address = ['cc','dd'];
                      alert(user1.address);
                      alert(user2.address);
                      
          //動態原型模式
                      function user(name,age){
                          this.name = name;
                          this.age = age;
                          this.address = ['1','2'];
                          if(typeof this.say != 'function'){
                              user.prototype.say = function(){
                          alert(this.name);
                      }
                          }
                      }
                      var user1 = new user('tom',11);
                      var user2 = new user('lily',22);
                      alert(user1.say==user2.say);

                  </script>
              </body>
          <html/>

          posted on 2013-06-17 13:30 楊軍威 閱讀(221) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 西藏| 四会市| 恩平市| 威海市| 孙吴县| 霍城县| 南昌县| 金阳县| 高陵县| 沧源| 中阳县| 政和县| 乡城县| 德昌县| 凌云县| 抚州市| 浮梁县| 阿图什市| 彭水| 广东省| 黄平县| 灌云县| 彰化市| 新乡市| 西丰县| 永寿县| 江源县| 嘉黎县| 卢湾区| 华容县| 新巴尔虎左旗| 屏边| 南昌市| 舞阳县| 海南省| 沅陵县| 大新县| 吴川市| 万宁市| 炎陵县| 河源市|