1. 程式人生 > 實用技巧 >js中的原型鏈

js中的原型鏈

原型鏈是js物件中的一個概念,當你引用一個物件的屬性的時候js會從當前物件向上尋找一直找到Object物件的原型物件。那麼一個物件的原型鏈是如何構建的?原型鏈的源頭是誰?

js和java很類似,java中所有類的都繼承一個類Object,js中原型鏈的源頭就是Object。js中沒有將類和物件分開,java中物件就是類的一個例項在js中物件也是由物件生成的。Object也是一個物件,你可以使用它來構造出更多它的副本,它的每個副本都有一個屬性__proto__指向Object的原型物件。

Array是js中標準庫的一個物件,它也有一個__proto__屬性指向了Object原型物件,如下圖

但是Object物件就沒有__proto__屬性因為它是原型鏈的源頭

關於new關鍵字

使用new命令時,它後面的函式依次執行下面的步驟。

  1. 建立一個空物件,作為將要返回的物件例項。
  2. 將這個空物件的原型,指向建構函式的prototype屬性(將__proto__賦值為建構函式的原型物件)。
  3. 將這個空物件賦值給函式內部的this關鍵字。
  4. 開始執行建構函式內部的程式碼。