構(gòu)造函數(shù)原型相關(guān)知識(shí)

人有兩個(gè)寶,雙手和大腦。雙手會(huì)吃飯,大腦會(huì)思考,會(huì)宕機(jī),會(huì)重啟,還會(huì)需要常常更新維護(hù)。我的腦子就像接觸不良的電路,又好像常常斷觸的屏幕。回路不一定閉合哈,常常卡殼。關(guān)于構(gòu)造函數(shù)原型一類的知識(shí),應(yīng)該是每個(gè)前端的基本功。在我腦子里,學(xué)的時(shí)候會(huì)七八成,現(xiàn)在就剩兩成不到了。概念又不太清晰了,就常復(fù)習(xí)鞏固,走走回頭路。上鏈接:幫你徹底搞懂JS中的prototype、__proto__與constructor(圖解)?。 看完后,感覺(jué)自己又懂了七八成了。

函數(shù)都天然擁有prototype 屬性。并且是函數(shù)獨(dú)享的屬性。有且只有函數(shù)擁有。

對(duì)象都天然擁有__proto__ 屬性。

函數(shù)是對(duì)象。

所以函數(shù)既有prototype 屬性,也有__proto__ 屬性。

一個(gè)new出來(lái)的實(shí)例是個(gè)對(duì)象,所以這個(gè)實(shí)例f1,是有__proto__ 屬性的。

這個(gè)實(shí)例和它的構(gòu)造函數(shù)的關(guān)系:

f1.__proto__ === Foo.prototype 。

當(dāng)訪問(wèn)對(duì)象f1的某個(gè)屬性時(shí)候,如果這個(gè)對(duì)象自己沒(méi)有,就去它的構(gòu)造函數(shù)原型上去訪問(wèn)。因?yàn)闃?gòu)造函數(shù)原型是用來(lái)存放它new出來(lái)的對(duì)象實(shí)例們的公用屬性和方法。? 這時(shí)候需要一個(gè)橋梁指向原型,也就是f1對(duì)象的__proto__屬性了。

通過(guò)__proto__屬性將對(duì)象連接起來(lái)的這條鏈路即我們所謂的原型鏈。

補(bǔ)充:關(guān)于constructor

constructor 也是對(duì)象天然擁有的屬性,它是從一個(gè)對(duì)象指向一個(gè)函數(shù),含義就是指向該對(duì)象的構(gòu)造函數(shù)。每個(gè)對(duì)象都有構(gòu)造函數(shù)(本身?yè)碛谢蚶^承而來(lái)),函數(shù)是對(duì)象,當(dāng)然也會(huì)擁有constructor屬性,指向構(gòu)造當(dāng)前構(gòu)造函數(shù)的構(gòu)造函數(shù)。

new 出來(lái)的實(shí)例對(duì)象的constructor 都是指向?qū)嵗臉?gòu)造函數(shù)本身。?

更多的已不想知道了,又抽象又混亂的。俄羅斯套娃和遞歸都不是我喜歡的。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容