摘要:之前在學(xué)習(xí)原型繼承的時(shí)候,在網(wǎng)上搜了一堆,發(fā)現(xiàn)都不是我想要的結(jié)果,就想起來我之前在一本書上看到的原型繼承方法。書名忍者秘籍第二版,作者原型繼承需要兩步第一步是把子類的原型設(shè)置為父類的實(shí)例。
之前在學(xué)習(xí)“JavaScript 原型繼承”的時(shí)候,在網(wǎng)上搜了一堆,發(fā)現(xiàn)都不是我想要的結(jié)果,就想起來我之前在一本書上看到的原型繼承方法。(書名:《JavaScript 忍者秘籍(第二版)》,作者:John Resig, Bear Bibeault, Josip Maras)
原型繼承需要兩步:
第一步是把子類的原型設(shè)置為父類的實(shí)例。但是這樣一來子類實(shí)例的 constructor 就指向父類了,所以需要手動(dòng)修復(fù)一下子類的 constructor。
于是就有了第二步:通過 Object.defineProperty 方法來把子類的 constructor 修正為子類。
以下是根據(jù)書中內(nèi)容自己寫的:
function Person() {} function Ninja() {} Ninja.prototype = new Person() Object.defineProperty(Ninja.prototype, "constructor", { enumerable: false, value: Ninja, writable: true }) let ninja = new Ninja()
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/104802.html
摘要:之前有朋友問怎么去理解原型和原型鏈的問題。理解原型鏈的小技巧將箭頭視作泛化子類到父類關(guān)系那么圖中所有的虛線將構(gòu)成一個(gè)繼承層級(jí),而實(shí)線表示屬性引用。原型鏈?zhǔn)菍?shí)現(xiàn)繼承的重要方式,原型鏈的形成是真正是靠而非。 之前有朋友問怎么去理解原型和原型鏈的問題。這個(gè)問題,在面試中,很多同學(xué)經(jīng)常都會(huì)遇到。這里給大家講講,方便大家記憶。 JavaScript的特點(diǎn)JavaScript是一門直譯式腳本...
摘要:之前有朋友問怎么去理解原型和原型鏈的問題。理解原型鏈的小技巧將箭頭視作泛化子類到父類關(guān)系那么圖中所有的虛線將構(gòu)成一個(gè)繼承層級(jí),而實(shí)線表示屬性引用。原型鏈?zhǔn)菍?shí)現(xiàn)繼承的重要方式,原型鏈的形成是真正是靠而非。 之前有朋友問怎么去理解原型和原型鏈的問題。這個(gè)問題,在面試中,很多同學(xué)經(jīng)常都會(huì)遇到。這里給大家講講,方便大家記憶。 JavaScript的特點(diǎn)JavaScript是一門直譯式腳本...
摘要:在創(chuàng)建對(duì)象不論是普通對(duì)象還是函數(shù)對(duì)象的時(shí)候,都有一個(gè)叫做的內(nèi)置屬性,用于指向創(chuàng)建它的構(gòu)造函數(shù)的原型對(duì)象,也就是。因?yàn)橐粋€(gè)普通對(duì)象的構(gòu)造函數(shù)所以原型鏈原型鏈的形成是真正是靠而非。參考文章最詳盡的原型與原型鏈終極詳解,沒有可能是。 【前端芝士樹】Javascript的原型、原型鏈以及繼承機(jī)制 前端的面試中經(jīng)常會(huì)遇到這個(gè)問題,自己也是一直似懂非懂,趁這個(gè)機(jī)會(huì)整理一下 0. 為什么會(huì)出現(xiàn)原型和...
摘要:重點(diǎn)實(shí)例對(duì)象是通過原型對(duì)象與構(gòu)造函數(shù)取得聯(lián)系的。原型鏈的形成是真正是靠的,而不是。函數(shù)對(duì)象和原型對(duì)象通過和屬性進(jìn)行相互關(guān)聯(lián)。 JavaScript 使用 prototypal 原型模型,雖然這經(jīng)常被當(dāng)作缺點(diǎn)提及,但是只要善于運(yùn)用,其實(shí)基于原型的繼承模型比傳統(tǒng)的類繼承還要強(qiáng)大。 個(gè)人博客排版更佳:https://haonancx.github.io/ showImg(https://se...
摘要:每個(gè)原型都有一個(gè)屬性指向關(guān)聯(lián)的構(gòu)造函數(shù)由于實(shí)例對(duì)象可以繼承原型對(duì)象的屬性,所以實(shí)例對(duì)象也擁有屬性,同樣指向原型對(duì)象對(duì)應(yīng)的構(gòu)造函數(shù)。 showImg(https://segmentfault.com/img/remote/1460000017183104?w=1300&h=834); 構(gòu)造函數(shù):function Foo ( ) { }; 實(shí)例對(duì)象:let f1=new Foo; 談到...
閱讀 939·2021-11-22 12:09
閱讀 3710·2021-09-27 13:36
閱讀 1397·2021-08-20 09:37
閱讀 4017·2019-12-27 12:22
閱讀 2360·2019-08-30 15:55
閱讀 2364·2019-08-30 13:16
閱讀 2822·2019-08-26 17:06
閱讀 3440·2019-08-23 18:32