看圖之前我們首先來了解幾個對象原型的基本知識:
??? 例子:
??? function Fn() {}// Fn為構(gòu)造函數(shù)
??? var f1 = new Fn();//f1是Fn構(gòu)造函數(shù)創(chuàng)建出來的對象
構(gòu)造函數(shù)的prototype(原型)屬性值就是對象原型辑畦。(Fn.prototype就是對象的原型)
構(gòu)造函數(shù)的prototype(原型)屬性值的類型就是對象? typeof Fn.prototype===object.?
只有函數(shù)才有prototype
對象原型中的constructor(構(gòu)造器)屬性指向構(gòu)造函數(shù) (Fn.prototype.constructor===Fn)
對象的__proto__(構(gòu)造器的原型)屬性值就是對象的原型。(f1.__proto__就是對象原型)
??? Fn.prototype===f1.__proto__ 其實它們兩個就是同一個對象---對象的原型戒努。
????所有Fn.prototype.__proto__===Object.prototype
????typeof Object.prototype ===object词爬。
????Object.prototype.__proto__===null。
??? 我討論原型就是指的對象與原型對象之間的關(guān)系昆著。所以原型鏈也稱之為對象鏈县貌。
??? 有了以上的基礎(chǔ)知識术陶,下面的原型鏈圖你就可以看明白了凑懂。