最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

原型鏈?zhǔn)且环N機(jī)制,指的是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,指向其對應(yīng)的構(gòu)造函數(shù)
  • 底層規(guī)定Object.prototype._ _ proto _ _ 等于null

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

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,假設(shè)Game在堆內(nèi)存中的地址為0x100;并通過它new出了一個實例對象g1,g1在堆內(nèi)存中的地址為0x200。構(gòu)造函數(shù)Game有天生屬性prototype,并指向其原型對象(在堆內(nèi)存中的地址為0x300)),實例對象g1具有天生屬性_ _ proto _ _ ,并指向其構(gòu)造函數(shù)的原型對象;原型對象具有天生屬性constructor指向其對應(yīng)的構(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,最終我們得到如下終極原型鏈圖:

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

相關(guān)文章

  • JavaScript中本地存儲(LocalStorage)和會話存儲(SessionStorage)的使用

    JavaScript中本地存儲(LocalStorage)和會話存儲(SessionStorage)的使用

    本地存儲和會話存儲是比較常用的方法,你知道兩者的區(qū)別嗎,本文詳細(xì)的介紹了JavaScript中本地存儲(LocalStorage)和會話存儲(SessionStorage)的使用,具有一定的參考價值,感興趣的可以了解一下
    2022-03-03
  • JS鼠標(biāo)事件大全 推薦收藏

    JS鼠標(biāo)事件大全 推薦收藏

    JS鼠標(biāo)事件大全 推薦收藏,整理的比較細(xì),推薦大家看下。
    2011-11-11
  • 如何基于filter實現(xiàn)網(wǎng)站整體變灰功能

    如何基于filter實現(xiàn)網(wǎng)站整體變灰功能

    這篇文章主要介紹了如何基于filter實現(xiàn)網(wǎng)站整體變灰功能,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-04-04
  • Typescript協(xié)變與逆變簡單理解

    Typescript協(xié)變與逆變簡單理解

    深入學(xué)習(xí)TypeScript類型系統(tǒng)的話,逆變、協(xié)變、雙向協(xié)變、不變是繞不過去的概念。這些概念看起來挺高大上的,其實并不復(fù)雜,這篇文章我們就來學(xué)習(xí)下協(xié)變和逆變吧
    2022-10-10
  • ionic3雙擊返回退出應(yīng)用的方法

    ionic3雙擊返回退出應(yīng)用的方法

    這篇文章主要為大家詳細(xì)介紹了ionic3雙擊返回退出應(yīng)用的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-09-09
  • JS request函數(shù) 用來獲取url參數(shù)

    JS request函數(shù) 用來獲取url參數(shù)

    項目中經(jīng)常會遇到這種問題 下面代碼解決問題!
    2010-05-05
  • 使用Javascript簡單計算器

    使用Javascript簡單計算器

    這篇文章主要為大家詳細(xì)介紹了使用Javascript簡單計算器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-11-11
  • javascript貪吃蛇完整版(源碼)

    javascript貪吃蛇完整版(源碼)

    這篇文章主要是對javascript貪吃蛇完整版(源碼)進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2013-12-12
  • js實現(xiàn)基于正則表達(dá)式的輕量提示插件

    js實現(xiàn)基于正則表達(dá)式的輕量提示插件

    這篇文章主要介紹了基于正則表達(dá)式的輕量提示插件,兼容性強(qiáng)卻文件輕巧的文本框檢測插件,推薦給大家,有需要的小伙伴可以參考下。
    2015-08-08
  • Boostrap中柵格布局的實現(xiàn)

    Boostrap中柵格布局的實現(xiàn)

    這篇文章主要為大家詳細(xì)解析了Boostrap 柵格布局,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2017-01-01

最新評論

措美县| 屏东市| 法库县| 合水县| 日土县| 麻江县| 红河县| 武隆县| 绥棱县| 遂溪县| 滁州市| 抚宁县| 剑河县| 安泽县| 师宗县| 新平| 区。| 长沙县| 元阳县| 三门县| 黄梅县| 青河县| 伊春市| 庆云县| 呼图壁县| 玉树县| 宾阳县| 澳门| 广平县| 长垣县| 百色市| 咸宁市| 韶山市| 鸡西市| 辽阳市| 海晏县| 浦北县| 玉环县| 米泉市| 钦州市| 涟水县|