成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

JS原型解析

adam1q84 / 2667人閱讀

摘要:它通過(guò)給對(duì)象添加原型關(guān)系即給某個(gè)對(duì)象添加屬性實(shí)現(xiàn)一個(gè)關(guān)聯(lián)。里面的原型關(guān)系真的很復(fù)雜也很繞,如果只是很枯燥的講述各種關(guān)系,真的很難記住,在這里希望通過(guò)代碼和思維導(dǎo)圖組合的形式,對(duì)的原型進(jìn)行一次深度的剖析和理解。

概述

JS中原型是為了實(shí)現(xiàn)代碼重用的一種仿類機(jī)制,不過(guò)它跟類又完全不同。它通過(guò)給對(duì)象添加原型關(guān)系(即給某個(gè)對(duì)象添加__proto__屬性)實(shí)現(xiàn)一個(gè)關(guān)聯(lián)。把共有的方法和屬性放到這個(gè)關(guān)聯(lián)上即實(shí)現(xiàn)了JS的繼承。簡(jiǎn)單來(lái)說(shuō)就是一種委托機(jī)制。

JS里面的原型關(guān)系真的很復(fù)雜也很繞,如果只是很枯燥的講述各種關(guān)系,真的很難記住,在這里希望通過(guò)代碼和思維導(dǎo)圖組合的形式,對(duì)JS的原型進(jìn)行一次深度的剖析和理解。

代碼分析

首先,我們給出下面的一組關(guān)系代碼

function Test() {}

var t1 = new Test()
var t2 = {}
var t3 = new Number(1)

t1.__proto__ === Test.prototype
Test.__proto__ === Function.prototype
Test.prototype.__proto__ === Object.prototype
t2.__proto__ === Object.prototype
Number.__proto__ === Function. prototype
Math.__proto__ === Object.prototype 
t3.__proto__ === Number.prototype
Number.prototype.__proto__=== Object.prototype
導(dǎo)圖理解

下圖是根據(jù)上述關(guān)系繪制的思維導(dǎo)圖,方便大家理解。

總結(jié)

引擎會(huì)創(chuàng)建兩個(gè)對(duì)象Object.prototype和Function.prototype

用__proto__將Function.prototype和Object.prototype關(guān)聯(lián)

非函數(shù)對(duì)象可以通過(guò)__proto__找到Object.prototype

函數(shù)對(duì)象通過(guò)__proto__找到Function.prototype

函數(shù)的 prototype 是一個(gè)對(duì)象,該對(duì)象的__proto__指向Object.prototype

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

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

相關(guān)文章

  • JS基礎(chǔ)-原型原型鏈真的不能一知半解

    摘要:原型鏈和對(duì)象的原型是對(duì)象實(shí)例和它的構(gòu)造函數(shù)之間建立的鏈接,它的值是構(gòu)造函數(shù)的。對(duì)象的原型根據(jù)上文提到的構(gòu)造調(diào)用函數(shù)的時(shí)候會(huì)創(chuàng)建一個(gè)新對(duì)象,自動(dòng)將的原型指向構(gòu)造函數(shù)的對(duì)象。 showImg(https://segmentfault.com/img/remote/1460000020185197); JS的原型、原型鏈一直是比較難理解的內(nèi)容,不少初學(xué)者甚至有一定經(jīng)驗(yàn)的老鳥(niǎo)都不一定能完全說(shuō)清...

    changfeng1050 評(píng)論0 收藏0
  • 獨(dú)家解析Javascript原型繼承 - 之函數(shù)原型和AOP

    摘要:引子獨(dú)家解析原型繼承已經(jīng)比較全面的分析了自定義函數(shù)類型,內(nèi)置基本類和內(nèi)置對(duì)象類型的的以及的原型鏈。鑒于函數(shù)是的一等公民,另辟新篇介紹函數(shù)的原型及其應(yīng)用。函數(shù)本身也是對(duì)象,它遵循獨(dú)家解析原型繼承所描述的自定義函數(shù)類型對(duì)象的原型法則。 引子 獨(dú)家解析Javascript原型繼承已經(jīng)比較全面的分析了自定義函數(shù)類型,JS內(nèi)置基本類(undefined, null, bool, number, ...

    ispring 評(píng)論0 收藏0
  • JS那些奇怪的題目(2)

    摘要:屬性返回所屬函數(shù)的函數(shù)名稱。正確字符串如果格式錯(cuò)誤構(gòu)造函數(shù)返回的仍是一個(gè)的實(shí)例所以結(jié)果為第題解析一個(gè)的屬性就是參數(shù)的個(gè)數(shù)。的結(jié)果中國(guó)標(biāo)準(zhǔn)時(shí)間,獲得當(dāng)前時(shí)間是個(gè)對(duì)象,是獲得當(dāng)前時(shí)間是個(gè)字符串。 第23道 [1 < 2 < 3, 3 < 2 < 1] 解析:如果加上括號(hào)就清楚了許多。(1 < 2) < 3 => (true) < 3 => 1 < 3 => true(3 < 2) < 1 ...

    dinfer 評(píng)論0 收藏0
  • 獨(dú)家解析Javascript原型繼承

    摘要:面向?qū)ο髮?shí)現(xiàn)代碼動(dòng)物發(fā)聲汪汪喵喵調(diào)用代碼動(dòng)物發(fā)聲喵喵動(dòng)物發(fā)聲汪汪當(dāng)要增加一種動(dòng)物時(shí),只需增加一個(gè)繼承,不會(huì)影響其他已有的動(dòng)物邏輯。所以的繼承和的原型繼承,可謂殊途同歸。 傳統(tǒng)面向?qū)ο蟮睦^承和多態(tài) 我們知道C++/Java/C#等面向?qū)ο笳Z(yǔ)言,都原生地支持類的繼承。繼承的核心作用大抵是創(chuàng)建一個(gè)派生類,并使其復(fù)用基本類(即父類)的字段和/或方法。并且派生類可以重寫(xiě)基本類的方法。這樣基本類和...

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

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

0條評(píng)論

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