亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

我所理解的原型&原型鏈

Allen / 3335人閱讀

摘要:有以下幾點(diǎn)三圖片解析是原型鏈的鏈接通過(guò)查找到,是原型的關(guān)鍵字是實(shí)例對(duì)象是構(gòu)造函數(shù)通過(guò)找到所以構(gòu)造器的原型屬于對(duì)象,也就是說(shuō)是出來(lái)的。同理找到,發(fā)現(xiàn)屬性,輸出五參考資料原型與原型鏈如果有理解不對(duì)的地方,歡迎大佬指正

一、題目

我們先看一道題目

    var F = function() {};   
    Object.prototype.a = function() {
        console.log("a");
    };

    Function.prototype.b = function() {
        console.log("b");
    }

    var f = new F();
    f.a(); 
    f.b();
    
    F.a(); 
    F.b(); 
二、解題關(guān)鍵


借用網(wǎng)絡(luò)上的圖片,看起來(lái)有點(diǎn)繞,待我們一點(diǎn)一點(diǎn)理解。有以下幾點(diǎn):

三、圖片解析

__proto__ 是原型鏈的鏈接

通過(guò) __proto__ 查找到prototypeprototype是原型的關(guān)鍵字

var f = new F()

f: 是實(shí)例對(duì)象

F: 是構(gòu)造函數(shù)

f通過(guò)__proto__ 找到F.prototype,所以f.__proto__ === F.prototype

構(gòu)造器的原型屬于對(duì)象 Object ,也就是說(shuō) F.prototypenew object 出來(lái)的。所以 F.prototype通過(guò) __proto__ 可以找到 Object.prototype

即:F.prototype.__proto__ === Object.Prototype

function Function() 是函數(shù)構(gòu)造器

Function.__proto__ === Function.prototype

Function.prototype 是對(duì)象,所以Function.prototype.__proto__ === Object.prototype

終極:Objecy.prototype.__proto__ === null

四、題目解析

再回過(guò)頭來(lái)看上面的題目

f.a(),f 是實(shí)例對(duì)象, f沒(méi)有a屬性,通過(guò)f.__proto__找到原型F.prototypeF.prototype上也沒(méi)有a屬性,繼續(xù)通過(guò) F.prototype.__proto__找到Object.prototype,發(fā)現(xiàn)a屬性,所以輸出a

f.b(),同理找到 Object.prototype,發(fā)現(xiàn)Object.prototype也沒(méi)有b屬性,繼續(xù)通過(guò)__proto__查找 到了null,所以b函數(shù)不存在,瀏覽器報(bào)錯(cuò)。 則 F.a(),F(xiàn).b()也不會(huì)執(zhí)行

若注釋了 f.b(),執(zhí)行F.a()。F是函數(shù),F(xiàn)上沒(méi)有a屬性,通過(guò)__proto__找到Function.prototype,發(fā)現(xiàn)Function.prototype沒(méi)有a屬性,繼續(xù)通過(guò)__proto__,找到Object.prototype,找到了a屬性,輸出a

若注釋了 f.b(),執(zhí)行F.b()。同理找到Function.prototype,發(fā)現(xiàn)b屬性,輸出b

五、參考資料

JS 原型與原型鏈

如果有理解不對(duì)的地方,歡迎大佬指正!

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/102193.html

相關(guān)文章

  • 我所認(rèn)識(shí)JavaScript作用域原型

    摘要:為了防止之后自己又開(kāi)始模糊,所以自己來(lái)總結(jié)一下中關(guān)于作用域鏈和原型鏈的知識(shí),并將二者相比較看待進(jìn)一步加深理解。因此我們發(fā)現(xiàn)當(dāng)多個(gè)作用域相互嵌套的時(shí)候,就形成了作用域鏈。原型鏈原型說(shuō)完了作用域鏈,我們來(lái)講講原型鏈。   畢業(yè)也整整一年了,看著很多學(xué)弟都畢業(yè)了,忽然心中頗有感慨,時(shí)間一去不復(fù)還呀。記得從去年這個(gè)時(shí)候接觸到JavaScript,從一開(kāi)始就很喜歡這門(mén)語(yǔ)言,當(dāng)時(shí)迷迷糊糊看完了《J...

    Bmob 評(píng)論0 收藏0
  • 一張圖讓自己搞懂(mēng)原型&原型

    摘要:要搞清這三種關(guān)系指向之間的關(guān)系拗口,其實(shí)也就是要搞懂,構(gòu)造函數(shù)由構(gòu)造函數(shù)操作創(chuàng)造出的實(shí)例對(duì)象和構(gòu)造函數(shù)的原型對(duì)象之間的關(guān)系。 寫(xiě)在前面 這篇博客來(lái)源于,有天mentor突然傳給我了這張祖?zhèn)鞯膱D片,并且發(fā)誓一定要給我講清楚,然鵝在他的一番激情講解之后,他自己也被繞懵了...于是后來(lái)我決定整理一下似乎還有點(diǎn)清晰的思路,記錄一下我對(duì)這張圖的理解。作為一個(gè)小白,對(duì)于js中這些比較復(fù)雜的概念的理...

    CntChen 評(píng)論0 收藏0
  • 探索 proto & prototype 與繼承之間關(guān)系

    摘要:而和的存在就是為了建立這種子類(lèi)與父類(lèi)間的聯(lián)系。創(chuàng)建一個(gè)基本對(duì)象建立新對(duì)象與原型我把它理解為類(lèi)之間的連接執(zhí)行構(gòu)造函數(shù)小結(jié)可以理解為類(lèi),也就是存儲(chǔ)一類(lèi)事物的基本信息。原型原型鏈和繼承之間的關(guān)系。 原型 原型的背景 首先,你應(yīng)該知道javascript是一門(mén)面向?qū)ο笳Z(yǔ)言。 是對(duì)象,就具有繼承性。 繼承性,就是子類(lèi)自動(dòng)共享父類(lèi)的數(shù)據(jù)結(jié)構(gòu)和方法機(jī)制。 而prototype 和 __proto__...

    dockerclub 評(píng)論0 收藏0
  • ES規(guī)范解讀之賦值操作符&屬性訪問(wèn)器

    摘要:那么什么是基礎(chǔ)對(duì)象組件呢,舉兩個(gè)例子我們?cè)賮?lái)看看屬性訪問(wèn)器,就是括號(hào)操作符及點(diǎn)號(hào)操作符都做了什么屬性訪問(wèn)器也就是說(shuō)括號(hào)跟點(diǎn)號(hào)對(duì)解釋器而言是一樣的。 ES規(guī)范解讀之賦值操作符&屬性訪問(wèn)器 原文:https://github.com/kuitos/kuitos.github.io/issues/24事情起源于某天某妹子同事在看angular文檔中關(guān)于Scope的說(shuō)明Understandin...

    funnyZhang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<