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

資訊專欄INFORMATION COLUMN

JS中的類與類的繼承

Tangpj / 3383人閱讀

摘要:首先捋清楚類和對(duì)象的關(guān)系類比如人類,指的是一個(gè)范圍對(duì)象比如某個(gè)人,指的是這個(gè)范圍中具體的對(duì)象中的作為構(gòu)造函數(shù)時(shí),就是一個(gè)類,通過操作符,可以返回一個(gè)對(duì)象。

JS中的類與類的繼承

我們知道,JS中沒有類或接口的概念,即不能直接定義抽象的類,也不能直接實(shí)現(xiàn)繼承。不過,為了編程的方便,我們可以在 JS 中模擬類和繼承的行為。
首先捋清楚類和對(duì)象的關(guān)系:

    類:比如人類,指的是一個(gè)范圍; 對(duì)象:比如某個(gè)人,指的是這個(gè)范圍中具體的對(duì)象

js中的function作為構(gòu)造函數(shù)時(shí),就是一個(gè)類,通過new操作符,可以返回一個(gè)對(duì)象。

類的聲明:

第一種:傳統(tǒng)構(gòu)造函數(shù)聲明
function Animal(){
            this.name = "tiger" 
        }
第二種:ES6中的class聲明
class Animal{
    constructor(){
        this.name = "tiger"
    }
}
生成實(shí)例:

雖然類的聲明有多種方式不盡相同,但是類生成實(shí)例相同

new Animal, new Animal2 // 沒有參數(shù)時(shí)候 ()可以省略

類的繼承的2種方式(主要說明es5傳統(tǒng)構(gòu)造函數(shù)的方式):

第一種:借助構(gòu)造函數(shù)實(shí)現(xiàn)繼承
原理

子類繼承父類,通過call/apply改變父類構(gòu)造函數(shù)的this指向

缺點(diǎn)

只實(shí)現(xiàn)了部分繼承,僅繼承了父類的屬性,并沒有繼承父類的原型對(duì)象上<原型鏈上>的方法

第二種:借助原型鏈實(shí)現(xiàn)繼承
原理

通過繼承__proto__實(shí)現(xiàn)原型鏈繼承:

1 在當(dāng)前Child2實(shí)例上查找dance方法
2 發(fā)現(xiàn)沒有 就會(huì)去 proto 上面去找dance方法
3 Child2實(shí)例的 proto === Parent2實(shí)例
4 去Parent2實(shí)例上查找dance方法 發(fā)現(xiàn)沒有
5 去Parent2實(shí)例的 proto 查找dance方法
6 找到。

缺點(diǎn)

如果實(shí)例兩個(gè)對(duì)象 改變其中一個(gè)對(duì)象的屬性/方法 另一個(gè)對(duì)象也會(huì)跟著改變(因?yàn)楦淖兊氖窃玩?

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

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

相關(guān)文章

  • java學(xué)習(xí)(三) —— 面對(duì)對(duì)象

    摘要:前言是面對(duì)對(duì)象的語言,因此有必要單獨(dú)紀(jì)錄下對(duì)象的各種定義和理解。面對(duì)對(duì)象基本概述概述是基于面向過程的變成思想,是對(duì)面向過程的一種封裝。面對(duì)對(duì)象開發(fā)就是不斷的創(chuàng)建對(duì)象,使用對(duì)象,指揮對(duì)象做事情。面對(duì)對(duì)象設(shè)計(jì)其實(shí)就是在管理和維護(hù)對(duì)象之間的關(guān)系。 前言 java是面對(duì)對(duì)象的語言,因此有必要單獨(dú)紀(jì)錄下對(duì)象的各種定義和理解。 面對(duì)對(duì)象,主要包括:面向?qū)ο笏枷?,類與對(duì)象及其使用,對(duì)象的內(nèi)存圖,成...

    褰辯話 評(píng)論0 收藏0
  • 設(shè)計(jì)模式之軟件設(shè)計(jì)七大原則

    摘要:引申意義子類可以擴(kuò)展父類的功能,但不能改變父類原有的功能。含義當(dāng)子類的方法實(shí)現(xiàn)父類的方法時(shí)重寫重載或?qū)崿F(xiàn)抽象方法,方法的后置條件即方法的輸出返回值要比父類更嚴(yán)格或相等。優(yōu)點(diǎn)約束繼承泛濫,開閉原則的一種體現(xiàn)。降低需求變更時(shí)引入的風(fēng)險(xiǎn)。 0x01.開閉原則 定義:一個(gè)軟件實(shí)體如類,模塊和函數(shù)應(yīng)該對(duì)擴(kuò)展開放,對(duì)修改關(guān)閉 要點(diǎn): 當(dāng)變更發(fā)生時(shí),不要直接修改類,而是通過繼承擴(kuò)展的方式完成變...

    ixlei 評(píng)論0 收藏0
  • php面向?qū)ο笤斀?/b>

    摘要:前言自從進(jìn)入版本以來,開始全面地支持面向?qū)ο缶幊?。好了,進(jìn)入正題,面向?qū)ο蟮娜筇匦苑謩e是封裝性,繼承性以及多態(tài)性,使用面向?qū)ο箝_發(fā),讓我們的程序可維護(hù)以及擴(kuò)展性大大提高。 showImg(https://segmentfault.com/img/remote/1460000012257579?w=1920&h=1080); 前言 自從php進(jìn)入5.0版本以來,PHP開始全面地支持面向...

    xingpingz 評(píng)論0 收藏0
  • JS與類繼承

    摘要:構(gòu)造類以及繼承構(gòu)造函數(shù)方法該種方式下的繼承封裝一個(gè)函數(shù)綁定復(fù)制繼承對(duì)象創(chuàng)建方法類的實(shí)現(xiàn)該種方式下的繼承極簡(jiǎn)主義法實(shí)現(xiàn)一個(gè)類睡覺睡覺類的私有屬性和方法在方法中,只要不是定義在對(duì)象上的方法和屬性,都是私有的該變量只能通過公有方法來讀取類的數(shù)據(jù)共 構(gòu)造類以及繼承 構(gòu)造函數(shù)方法 function Person(name) { this.name = name } Person.pro...

    shixinzhang 評(píng)論0 收藏0
  • Java 面向?qū)ο?/b>

    摘要:自從轉(zhuǎn)到前段,差不多有一年時(shí)間沒有動(dòng)了,今天老弟問我關(guān)于的面向?qū)ο?,自己不敢直接回答了,也許自己真的應(yīng)該去做相關(guān)的考究了。要有父類引用指向子類對(duì)象。外部類要訪問內(nèi)部類的成員,必須要建立內(nèi)部類的對(duì)象。 自從轉(zhuǎn)到前段,差不多有一年時(shí)間沒有動(dòng)Java了,今天老弟問我關(guān)于Java的面向?qū)ο?,自己不敢直接回答了,也許自己真的應(yīng)該去做相關(guān)的考究了。然后在告訴他吧,記在這里當(dāng)做一個(gè)筆記吧。  什么...

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

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

0條評(píng)論

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