samtiger


          QQ:418148757
          Name:yangchuan
          數據加載中……
          關于javascript對類的一些理解

          1:在javascript中,函數也是一種對象,所以他也可以有屬性和方法。
          2:定義一個類,實際上是定義一個構造函數。通常遵循的規范是函數名大寫,
          但這個只是大家的一中習慣性的編程規范,不是必須的。當然你也可以小
          寫。
          3:對象的屬性有以下幾種寫法:
            a:直接在對象上添加,格式: xxobject.xxprop = 屬性值
             xxobject表示某一個對象,xxprop表示要添加的新屬性。
           例: var person = new Object();
                      person.name="sam";
                      alert(person.name); //值為sam;
            上面的例子表示給person對象添加一個新的屬性name并輔值為sam.
            b: 通過構造函數定義類屬性.格式:
             function classname(){
                this.xxprop1 = xxvalue1;
                this.xxprop2 = xxvalue2;
              }
            xxprop1 屬性1;
           例:
              function Person(){
                this.name = 'sam';
                this.sex = '男';
            }
            
             var person = new Person();
             alert(person.name) //值為sam;
             c: 通過構造函數的prototype對象添加屬性 ,格式:Class.prototype.xxprop= value;
              Class表示某構造函數,prototype是構造函數對應的prototype對象.每一個構造函數
          都有一個名位prototype的對象.

            例:
              function Person(){ };
            Person.prototype.name = 'sam';
              Person.prototype.sex = "男";
              var person = new Person();
              alert(person.name) //值為sam;

            注意:用構造函數體內定義的屬性(如b: this.xxprop1=xxvalue1;) 與在函數的prototype
          對象里添加屬性的方式有什么區別?
              主要區別在于:構造函數體內定義的屬性每次new一個新的對象時,都會在內存中創建這些屬性
          的副本,而prototype里添加的屬性則不會,它們在內存中始終只有一份.不會因為對象的創建,
          存在對分屬性的內存空間.但是他們的訪問方式都是一樣的,都是通過對象名點屬性名的方式
          (person.name).
             d: 通過對象直接量的方式添加對象屬性.格式: var objectName={xxprop1:xxvalue,
               xxprop2:xxvalue2};
             我們知道javascript創建一個對象,有三種方式:
              第一種:通過Object函數創建.如:var person = new Object();
              然后通過上面a的方式加入屬性值如: person.name = 'sam';
                  第二種: 通過定義構造函數來創建.如上b方式.如: person = new Person();
                  第三種方式:通過對象直接量創建. 比如:
              var person = {name:'sam',sex:'man',age:18};
              即:大括號內寫入 屬性 冒號 值 ,即可.
             
               

          posted on 2008-04-01 21:15 sam.chuan.yang 閱讀(304) 評論(2)  編輯  收藏 所屬分類: javascript 筆記

          評論

          # re: 關于javascript對類的一些理解 2008-05-28 17:36 懶人

          前兩種好像比較常用
            回復  更多評論    

          # re: 關于javascript對類的一些理解[未登錄] 2012-04-01 11:01 SPARK

          第三種即匿名對象。實際上,相當多的語言都有匿名對象。

            回復  更多評論    

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


          網站導航:
           
          主站蜘蛛池模板: 洪洞县| 建湖县| 南宁市| 益阳市| 盖州市| 射阳县| 民县| 天长市| 武穴市| 六安市| 化德县| 廊坊市| 康马县| 曲靖市| 沭阳县| 大厂| 云阳县| 扎兰屯市| 柞水县| 潍坊市| 铜梁县| 阿巴嘎旗| 博湖县| 北宁市| 通海县| 苏尼特右旗| 华坪县| 吕梁市| 江山市| 来安县| 广水市| 鄢陵县| 瑞丽市| 门头沟区| 武川县| 抚松县| 共和县| 镇雄县| 弋阳县| 海淀区| 巫溪县|