在JavaScript中建立對象以及prototype的總結

來源:互聯網
上載者:User

基礎知識
1. 嚴格上講,在JS中只有對象沒有class
2. 對象可以有專屬的屬性和方法。即對象的屬性和方法是類的超集。
3. ECMAScript可以識別兩種類型的對象。
一種叫做Native Object,屬於語言範疇;
一種叫做Host Object,由運行環境提供例如document對象,Dom Node等。
Native Object是一種鬆散的結構,可以動態增加、刪除、修改對象的屬性(property)和方法(function)。屬性有一個名字和一個值,屬性值可以是另一個對象的引用

或者是內建的資料類型(String, Number, Boolean, Null 或者 Undefined) 。方法有方法和方法體。
可以直接給屬性(方法)指定屬性值(方法體),當對象中不存在此屬性(方法)時,就建立此屬性(方法)。
可以調用delete obj.a刪除屬性或者方法。

一,關於prototype
      1. prototype屬性對應一個對象,他是類層級的。通過ClassName.prototype進行訪問。
      2. 當建立一個類的對象時,這些對象共用類的prototype屬性。
      3. prototype屬性指向一個對象,此對象的對應類可能也有prototype屬性。所以可能形成prototype鏈。
      4. 當定義一個類時,他的prototype存在預設值。
    
 
5.
讀操作會讀取在對象自己和prototype 鏈上發現的第一個同名屬性值

          寫操作會為對象本身建立一個同名屬性(如果這個屬性名稱不存在)。
      6. ClassA.prototype=A; ClassA.prototype=B;
    
    
那麼B將取代A成為ClassA的prototype。
      7.
prototype屬性指向的對象,可以包含屬性和方法。prototype屬性賦值的方法有
    
    
 
ClassA.prototype = objA; //直接指定對象

    
    
 
ClassA.prototype =
{ a:1, b:function(){} };
           ClassA.prototype.a = 1; //設定
prototype屬性指向對象的a屬性。
           ClassA.prototype.b = function(){};
//
設定
prototype屬性指向對象的b方法。

說明:http://www.javaeye.com/topic/53537
二,關於建立對象

    
    
類定義有三種基本方法:
    
   
1. 工廠函數。例如
    
    
    
function CoFactory(){
                  var o = new Object;
                  o.a = 1 return o
             }
             用這種方式建立對象: var o = CoFactory();
      
         2. 建構函式。例如
    
    
    
function Co(){
    
    
    
    
    
this.a = 1
            }
    
    
  
用這種方式建立對象:var o = new Co()。

    
    
3. 建構函式+原型。例如
    
    
 
function Co(){
    
    
  
}
    
    
  Co.prototype.a = 1;
           用這種方式建立對象: var o = new Co();

         
類對象有靜態屬性和方法。可以通過ClassA.a進行訪問。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.