五月天青色头像情侣网名,国产亚洲av片在线观看18女人,黑人巨茎大战俄罗斯美女,扒下她的小内裤打屁股

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

對(duì)象繼承的方式

2023-09-05 15:13 作者:bengdour  | 我要投稿

這篇是上一篇的姐妹篇,面試中你有被問(wèn)到-javascript中有幾種創(chuàng)建對(duì)象的方式嗎?這兩篇結(jié)合起來(lái),能更好地理解對(duì)象。開(kāi)始吧!



01

原型鏈


原理:將父類的實(shí)例賦給子類的prototype

缺點(diǎn):

實(shí)例的類型是不能直觀看到的;

在創(chuàng)建子類型時(shí),雖然可以傳參,但容易造成修改的混亂。



02

構(gòu)造函數(shù)結(jié)合原型鏈


原理:

使用call繼承構(gòu)造函數(shù)的屬性和方法;

將父類的實(shí)例賦給子類的prototype繼承父類的屬性和方法,以及構(gòu)造函數(shù)原型的方法

缺點(diǎn):

由于調(diào)用了兩次父類的構(gòu)造函數(shù),所以子類的原型中多了很多多余的屬性



03

原型式繼承



Object.getPrototypeOf()方法可以用來(lái)從子類上獲取父類,判斷一個(gè)類是否繼承了另一個(gè)類

Object.setPrototypeOf(),為現(xiàn)有對(duì)象設(shè)置原型,返回一個(gè)新對(duì)象:?

接收兩個(gè)參數(shù):第一個(gè)是現(xiàn)有對(duì)象,第二是原型對(duì)象。


缺點(diǎn):

不能傳參,即使傳參也會(huì)被忽略



04

寄生式繼承


原理:利用Object.create()將父類復(fù)制給子類,子類再進(jìn)行拓展

缺點(diǎn):

使用不方便



05

寄生式組合繼承


原理:

利用call()獲取父類的屬性和方法,并將指針指向子類

利用Object.defineProperty獲取Person.prototype中的屬性和方法

Object.defineProperty方法直接在一個(gè)對(duì)象上定義一個(gè)新屬性,或者修改一個(gè)已經(jīng)存在的屬性, 并返回這個(gè)對(duì)象。?

Object.defineProperty 需要三個(gè)參數(shù)(object , propName , descriptor)

?1 object 對(duì)象 => 給誰(shuí)加

?2 propName 屬性名 => 要加的屬性的名字 【類型:String】

?3 descriptor 屬性描述 => 加的這個(gè)屬性有什么樣的特性【類型:Object】


06

????extends關(guān)鍵字實(shí)現(xiàn)繼承

super作為函數(shù)調(diào)用時(shí),代表父類的構(gòu)造函數(shù)--ES6要求,子類的構(gòu)造函數(shù)必須執(zhí)行一次super函數(shù),否則會(huì)報(bào)錯(cuò);

super雖然代表了父類Person的構(gòu)造函數(shù),但返回的是子類Coder的實(shí)例,即super內(nèi)部的this指向的是Coder的實(shí)例。因此super()在這里相當(dāng)于Person.prototype.contructor.call(this)






對(duì)象繼承的方式的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
楚雄市| 山丹县| 隆昌县| 金门县| 罗城| 高雄市| 千阳县| 尖扎县| 远安县| 衡东县| 宝坻区| 安新县| 江油市| 通辽市| 瑞安市| 张北县| 承德市| 诸暨市| 泸西县| 垣曲县| 本溪市| 旌德县| 库车县| 时尚| 涞源县| 昭苏县| 兴隆县| 宁南县| 景谷| 罗江县| 获嘉县| 文成县| 故城县| 宾阳县| 清河县| 南澳县| 神池县| 文昌市| 确山县| 温泉县| 阿巴嘎旗|