欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

五句話幫你輕松搞定js原型鏈

 更新時間:2020年12月09日 14:58:43   作者:小左同學呀  
這篇文章主要給大家介紹了關于js原型鏈的相關資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

原型鏈是一種機制,指的是JavaScript每個對象包括原型對象都有一個內(nèi)置的[[proto]]屬性指向創(chuàng)建它的函數(shù)對象的原型對象,即prototype屬性。 作用:原型鏈的存在,主要是為了實現(xiàn)對象的繼承。

一、 記住以下5句話,輕松搞定js原型鏈

  • Function 和 Object 都是構(gòu)造函數(shù)
  • 所有的構(gòu)造函數(shù)都是Function new出來的(Function自己new了自己);所有的原型對象都是Object new出來的(Object new了自己的原型對象)
  • 每一個構(gòu)造函數(shù)都有一個prototype屬性指向其原型對象;每一個實例對象都有一個_ _ proto _ _ 屬性;實例對象的_ _ proto _ _ 等于其構(gòu)造函數(shù)的prototype
  • 每一個原型對象都有一個天生屬性constructor,指向其對應的構(gòu)造函數(shù)
  • 底層規(guī)定Object.prototype._ _ proto _ _ 等于null

二、下邊我們結(jié)合一小段代碼來詳細說明原型鏈的畫圖過程

function Game(brand,name,price) {
  this.price= price;
  this.brand = brand;
  this.name = name;
 }
 var g1 = new Game('EA','彩虹六號','200rmb');

1.根據(jù)上邊的代碼我們先定義了一個構(gòu)造函數(shù)叫做Game,假設Game在堆內(nèi)存中的地址為0x100;并通過它new出了一個實例對象g1,g1在堆內(nèi)存中的地址為0x200。構(gòu)造函數(shù)Game有天生屬性prototype,并指向其原型對象(在堆內(nèi)存中的地址為0x300)),實例對象g1具有天生屬性_ _ proto _ _ ,并指向其構(gòu)造函數(shù)的原型對象;原型對象具有天生屬性constructor指向其對應的構(gòu)造函數(shù)。然后我們得到如下圖:

2.由于所有的原型對象都是Object(0x400) new 出來的,所以0x300這個原型對象同時也是Object的一個實例對象,既然是實例對象就具有天生屬性_ _ proto _ _ ,并指向其構(gòu)造函數(shù)的原型對象(0x500);因為Object自身也是一個構(gòu)造函數(shù),所以其也有天生屬性prototype,并指向其原型對象(0x500);又因為所有的原型對象都是Object(0x400) new 出來的,所以0x500這個原型對象也是Object new出來的,因為0x500是Object的原型對象,所以0x500的天生屬性constructor指向Object;由于底層規(guī)定Object.prototype._ _ proto _ _ 等于null,然后我們得到如下圖:

3.

我們再來看構(gòu)造函數(shù),由于所有的構(gòu)造函數(shù)都是Function new出來的,所以Function(0x600) new出了自己、Object、Game這三個構(gòu)造函數(shù),那么這三個構(gòu)造函數(shù)都是Function的實例對象,它們的_ _ proto _ _ 都指向Function的prototype(0x700),0x700的天生屬性constructor又指向0x600;由于0x700是Object new 出來的,所以0x700的_ _ proto _ _ 指向Object 的原型對象0x500,最終我們得到如下終極原型鏈圖:

到此這篇關于js原型鏈的文章就介紹到這了,更多相關js原型鏈內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 鼠標點擊input,顯示瞬間的邊框顏色,對之修改與隱藏實例

    鼠標點擊input,顯示瞬間的邊框顏色,對之修改與隱藏實例

    下面小編就為大家?guī)硪黄髽它c擊input,顯示瞬間的邊框顏色,對之修改與隱藏實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧,祝大家游戲愉快哦
    2016-12-12
  • TypeScript條件類型與內(nèi)置條件類型超詳細講解

    TypeScript條件類型與內(nèi)置條件類型超詳細講解

    我們可以使用TypeScript中的條件類型來根據(jù)邏輯定義某些類型,就像是在編寫代碼那樣。它采用的語法和我們在JavaScript中熟悉的三元運算符很像:condition ? ifConditionTrue : ifConditionFalse。我們來看看他是怎么工作的
    2023-03-03
  • js中DOM事件綁定分析

    js中DOM事件綁定分析

    在這篇文章中小編給大家整理了關于JS中DOM事件綁定的相關知識點,有興趣的朋友趕快學習參考下。
    2018-03-03
  • 詳解JS構(gòu)造函數(shù)中this和return

    詳解JS構(gòu)造函數(shù)中this和return

    本文通過實例代碼給大家介紹了JS構(gòu)造函數(shù)中this和return,需要的朋友參考下吧
    2017-09-09
  • 微信小程序使用wxParse解析html的實現(xiàn)示例

    微信小程序使用wxParse解析html的實現(xiàn)示例

    這篇文章主要介紹了微信小程序使用wxParse解析html的實現(xiàn)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • 談談IntersectionObserver懶加載的具體使用

    談談IntersectionObserver懶加載的具體使用

    這篇文章主要介紹了談談IntersectionObserver懶加載的具體使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • JavaScript觸發(fā)器詳解

    JavaScript觸發(fā)器詳解

    JavaScript觸發(fā)器詳解...
    2007-03-03
  • javascript 用記憶函數(shù)快速計算遞歸函數(shù)

    javascript 用記憶函數(shù)快速計算遞歸函數(shù)

    摘自《JavaScript: The Good Parts》,作為讀書筆記備用。對于追求執(zhí)行效率的朋友可以參考下。
    2010-03-03
  • javascript實現(xiàn)攝像頭拍照預覽

    javascript實現(xiàn)攝像頭拍照預覽

    這篇文章主要為大家詳細介紹了javascript實現(xiàn)攝像頭拍照預覽,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • 純js實現(xiàn)背景圖片切換效果代碼

    純js實現(xiàn)背景圖片切換效果代碼

    現(xiàn)在純粹用js的人越來越少了,更多的人喜歡jquery,可使我還是喜歡javascript,下面給出一個用javascript寫的背景切換的小例子,各位大蝦不要罵,只是寫給自己看的,也供js事件的產(chǎn)考依據(jù)。
    2010-11-11

最新評論