JS原型鏈

什么是原型鏈

參考 MDN 繼承與原型鏈 - JavaScript | MDN (mozilla.org)

JavaScript 只有一種結(jié)構(gòu):對(duì)象。每個(gè)對(duì)象(object)都有一個(gè)私有屬性指向另一個(gè)名為原型(prototype)的對(duì)象。原型對(duì)象也有一個(gè)自己的原型,層層向上直到一個(gè)對(duì)象的原型為 null。根據(jù)定義,null 沒(méi)有原型,并作為這個(gè)原型鏈(prototype chain)中的最后一個(gè)環(huán)節(jié)??梢愿淖?cè)玩溨械娜魏纬蓡T,甚至可以在運(yùn)行時(shí)換出原型

舉例:

let a = []
a.__proto__ === Array.prototype // true
Array.prototype.__proto__ === Object.prototype //true
Object.prototype.__proto__ === null //true

上面xxx.__proto__ 在瀏覽器中用來(lái)表示 xxx的原型對(duì)象
遵循 ECMAScript 標(biāo)準(zhǔn),應(yīng)該用符號(hào)xxx.[[Prototype]] 來(lái)表示 xxx 的原型,在瀏覽器中打印xxx.[[Prototype]] 會(huì)報(bào)錯(cuò),Object.getPrototypeOf()可以獲得對(duì)象的原型對(duì)象,上面的例子 可以這樣表示

Object.getPrototypeOf(a) === Array.prototype //true
Object.getPrototypeOf(Array.prototype) === Object.prototype //true
Object.getPrototypeOf(Object.prototype) === null //true

如何修改原型

最后編輯于
?著作權(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)容