JavaScript(三)---原型與原型鏈

原型

js分為普通對(duì)象和函數(shù)對(duì)象,typeof檢測(cè)時(shí)為object或者function

  • 每個(gè)對(duì)象都有_proto_屬性
  • 只有函數(shù)對(duì)象才有prototype屬性

_proto_和prototype是啥?

  • 屬性_proto_是一個(gè)對(duì)象,它有兩個(gè)屬性,constructor和 _proto_;
  • 原型對(duì)象prototype有一個(gè)默認(rèn)的constructor屬性,用于記錄實(shí)例是由哪個(gè)構(gòu)造函數(shù)創(chuàng)建;

原型鏈

每個(gè)對(duì)象都會(huì)隱式的引用_proto_這個(gè)對(duì)象,而每個(gè)對(duì)象的_proto_對(duì)象也有_proto_屬性,因此層層嵌套,直到Object.prototype.ptoro==null

原型鏈.png

  • 構(gòu)造函數(shù)的_proto_屬性和構(gòu)造函數(shù)prototype的_proto_屬性是指向不同對(duì)象的,前者是Function的實(shí)例,因此指向Function.prototype, 后者是普通對(duì)象,若沒(méi)有繼承自其它類直接指向Object.prototype。
  • Function和Object構(gòu)造函數(shù)的_proto_屬性都是指向Function.prototype,Function的原型的_proto_屬性指向Object.prototype。

總結(jié),構(gòu)造函數(shù)的proto原型鏈上Function.prototype

?著作權(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)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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