1、引用類型,都具有對象特性,即可自由擴展屬性。
2、引用類型,都有一個隱式原型 __proto__
屬性,屬性值是一個普通的對象。
3、引用類型,隱式原型 __proto__
的屬性值指向它的構造函數的顯式原型 prototype
屬性值。
4、當你試圖得到一個對象的某個屬性時,如果這個對象本身沒有這個屬性,那么它會去它的隱式原型 __proto__
(也就是它的構造函數的顯式原型 prototype
)中尋找。
在自定義構造函數時原型對象只會獲得constructor
屬性,其他的都是從Object
繼承而來,調用構造函數創(chuàng)建實例就是將實例的[[Prototype]]
指針被賦值為構造函數的原型對象。[[Prototype]]
在腳本中沒有訪問它的標準方式,但是瀏覽器提供了__proto__
.
constructor
屬性是原型的它會指回與之關聯(lián)的構造函數
個人理解:一般形式的對象數組,引用類型,有的是__proto__
指向它的原型,而構造函數它的是prototype
屬性指向原型,這兩個都是指向原型的。
實列和構造函數是一級的(它兩更像是兄弟關系),它們指向同一個原型(構造函數通過prototype
訪問,實例通過__proto__
訪問)報錯的兩行是打錯了但是不影響
?
然后在看對象實例原型的原型
?
這是對象實例xiaoMing的原型的原型,也是Object
的原型內置的,所有的實例對象構造函數即對象類型都是Object的實例
Object
原型的的原型是null
?
Object實際只是一個概念,JavaScript這個語言基于對象,是說所有內建類型都被抽象出了一組公用的方法和屬性(也可以叫行為和狀態(tài)),我們就想像只擁有這些特性的一個東西就是Object
簡單的關系如下圖
?
本文摘自 :https://www.cnblogs.com/