js中的原型鏈
阿新 • • 發佈:2020-09-03
原型鏈是js物件中的一個概念,當你引用一個物件的屬性的時候js會從當前物件向上尋找一直找到Object物件的原型物件。那麼一個物件的原型鏈是如何構建的?原型鏈的源頭是誰?
js和java很類似,java中所有類的都繼承一個類Object,js中原型鏈的源頭就是Object。js中沒有將類和物件分開,java中物件就是類的一個例項在js中物件也是由物件生成的。Object也是一個物件,你可以使用它來構造出更多它的副本,它的每個副本都有一個屬性__proto__指向Object的原型物件。
Array是js中標準庫的一個物件,它也有一個__proto__屬性指向了Object原型物件,如下圖
但是Object物件就沒有__proto__屬性因為它是原型鏈的源頭
關於new關鍵字
使用new
命令時,它後面的函式依次執行下面的步驟。
- 建立一個空物件,作為將要返回的物件例項。
- 將這個空物件的原型,指向建構函式的
prototype
屬性(將__proto__賦值為建構函式的原型物件)。 - 將這個空物件賦值給函式內部的
this
關鍵字。 - 開始執行建構函式內部的程式碼。