JS原型和原型鏈

1.?prototype 即原型對象,它記錄著函數(shù)對象的一些屬性和方法,prototype 對函數(shù)對象是不可見的,prototype 的主要作用就是繼承。 通俗一點(diǎn)講,prototype 中定義的屬性和方法都是留給自己的 “后代” 用的,因此,子類完全可以訪問prototype中的屬性和方法。

2.?__proto__ ,它存在于普通對象和函數(shù)對象中,它的作用就是引用父類的 prototype 對象,JS在通過 new 操作符創(chuàng)建一個(gè)對象的時(shí)候,通常會(huì)把父類的 prototype 賦值給新對象的 __proto__屬性,這樣就形成了一代代傳承。

3.?如圖所示,f.prototype 的 __proto__ 中保存的是 Object.prototype,Object.prototype 對象中也有 __proto__,而從輸出結(jié)果看,Object.prototype.__proto__ 是 null,表示 obj 對象原型鏈的終結(jié)。

4. 原型鏈的形成真正是靠__proto__ 而非prototype,當(dāng)JS引擎執(zhí)行對象的方法時(shí),先查找對象本身是否存在該方法,如果不存在,會(huì)在原型鏈上查找,但不會(huì)查找自身的prototype。

5. 一個(gè)對象的 __proto__ 記錄著自己的原型鏈,決定了自身的數(shù)據(jù)類型,改變 __proto__ 就等于改變對象的數(shù)據(jù)類型。

6. 函數(shù)的 prototype 不屬于自身的原型鏈,它是創(chuàng)建子類的核心,決定了子類的數(shù)據(jù)類型,是連接子類原型鏈的橋梁。

7. 在原型對象上定義方法和屬性,是為了被子類繼承和使用。

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

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

  • 學(xué)習(xí)使用過js的人一開始都會(huì)覺得js簡單,這是因?yàn)閖s語法簡單,學(xué)習(xí)過編程語言的人,很容易掌握js的基本語法并按要...
    易則知閱讀 1,345評(píng)論 0 11
  • 聲明:此文為轉(zhuǎn)載文章,為了自己看起來方便特此重新排版,等日后看懂了再自己整理疏解,查看原文請點(diǎn)擊這里。 正文: J...
    辭鏡朱顏閱讀 596評(píng)論 0 1
  • 什么是原型語言 只有對象,沒有類;對象繼承對象,而不是類繼承類。 “原型對象”是核心概念。原型對象是新對象的模板,...
    zhoulujun閱讀 2,450評(píng)論 0 12
  • 在這條親密無間路上 從這頭走向那頭的我像你 從那頭走來的你像我 寒來暑往 別過悲傷和歡笑 沒人能夠只靠移動(dòng)沉重的步...
    柔婉的雨閱讀 142評(píng)論 0 0
  • 喝一杯干柴烈酒, 飲一首古怪詩文。 聽一曲甘腸寸斷, 道一聲俠骨柔情。 朋相聚,多離散。 勸酒未把壺喝干, 聞酒不...
    今古傳奇吳總閱讀 166評(píng)論 1 6

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