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)  編輯  收藏


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


          網站導航:
           

          導航

          統計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 阆中市| 锡林浩特市| 绥中县| 南皮县| 中阳县| 宿迁市| 三原县| 南昌市| 裕民县| 湖口县| 澄江县| 霍城县| 沛县| 海城市| 公安县| 淅川县| 巴塘县| 名山县| 莱芜市| 仙游县| 临邑县| 绍兴市| 静乐县| 高雄县| 定边县| 广东省| 莱阳市| 南和县| 仁怀市| 启东市| 彭山县| 盖州市| 广汉市| 保定市| 全南县| 北海市| 天津市| 高邮市| 泉州市| 巩义市| 临澧县|