我的漫漫程序之旅

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

          Javascript動態創建get,set方法的兩種寫法

          <HTML>
           
          <HEAD>
            
          <TITLE> New Document </TITLE>
           
          </HEAD>

           
          <BODY>
           
          <script>
              
          //創建一個User類
              function User(properties)
              
          {
                  
          //遍歷所有的屬性
                  for(var i in properties)
                  
          {
                      
          // inner function
                      (function(i)
                      
          {
                          
          //get method
                          this["get" + i] = function()
                          
          {
                              
          return properties[i];
                          }
          ;
                          
          //set method
                          this["set" + i]  = function(val)
                          
          {
                              properties[i] 
          = val;
                          }

                      }
          ).call(this,i);
                  }

              }


              
          var me = new User({name:"zdw",age:44});
              document.write(me.getname());
              me.setname(
          "admin");
              document.write(
          "<br />" + me.getname());
              document.write(
          "<br />" + me.getage());

              
          //第二種寫法
              function Person(properties)
              
          {
                  
          var _this = this;
                  
          for(var i in properties)
                  
          {
                      (
          function(i)
                      
          {
                          _this[
          "get" + i] = function()
                          
          {
                              
          return properties[i];
                          }


                          _this[
          "set" + i] = function(val)
                          
          {
                              properties[i] 
          = val;
                          }

                      }
          )(i);
                  }

              }


              
          var you = new Person({name:"admin",age:999});
              alert(you.getname() 
          + "\n" +  you.getage());
              you.setname(
          "angel");
              alert(you.getname() 
          + "\n" +  you.getage());
           
          </script>
           
          </BODY>
          </HTML>


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

          主站蜘蛛池模板: 旌德县| 昌吉市| 荔波县| 五峰| 江津市| 托克托县| 遵义市| 四川省| 镇宁| 北宁市| 西昌市| 孝感市| 丹棱县| 长乐市| 洪洞县| 沧州市| 武隆县| 郎溪县| 维西| 赫章县| 富阳市| 威信县| 磐安县| 栾城县| 信丰县| 盐池县| 晋江市| 瓮安县| 竹北市| 陆河县| 广河县| 宁武县| 开化县| 湘潭市| 昆明市| 革吉县| 个旧市| 梁平县| 鹤壁市| 德保县| 聂荣县|