es6中定義的類

今天說一下什么是es6中的類

image

1.首先說一下用class生成的類


//生成實(shí)例對象的傳統(tǒng)方法是通過構(gòu)造函數(shù)

function Point(x,y){

this.x = x;

this.y = y

}

Point.prototype.toString = function(){

return '(' + this.x+','+this.y+')'

}

var p = new Point(1,2);

//ES6 提供了更接近傳統(tǒng)語言的寫法 引入了Class類這個(gè)概念 ES6 的Class可以看作只是一個(gè)語法糖

class Point{

constructor(x,y){ //構(gòu)造方法

    this.x = x;

    this.y = y;

}

toString(){

    return '('+this.x + ',' +this.y+')';

}

}

        //ES6的類 完全可以看做構(gòu)造函數(shù)的另一種寫法
        //使用的時(shí)候 也是直接對類使用new命令,跟構(gòu)造函數(shù)用法完全一致
        //事實(shí)上類的所有方法都在類的prototype屬性上面
        //所以  類.prototype.constructor === 類  true
        //constructor方法是類我的默認(rèn)方法,通過new命領(lǐng)生成對象實(shí)例時(shí),自動調(diào)用該方法
        //一個(gè)類必須擁有constructor這個(gè)方法  如果沒有的話自動添加 所以
        class Point{
                
        }
            
        //等同于
        class Point{
            constructor(){}
        }
        //constructor方法默認(rèn)返回實(shí)例對象
        //就像使用構(gòu)造函數(shù)一樣運(yùn)用
        var point = new Point()

2.繼承

// 繼承
    class Parent{ //定義一個(gè)類
        constructor(name='小明'){
          this.name= name;
        }
    } 
 
    class Child extends Parent{
 
    }
 
    console.log('繼承',new Child()) // 繼承 {name: "小明"}

繼承傳遞參數(shù)

// 繼承傳遞參數(shù)
    class Parent{ //定義一個(gè)類
        constructor(name='小明'){
          this.name= name;
        }
    } 
 
    class Child extends Parent{
      constructor(name = 'child'){ // 子類重寫name屬性值
        super(name); // 子類向父類修改 super一定放第一行
        this.type= 'preson';
      }
    }
 
    console.log('繼承',new Child('hello')) // 帶參數(shù)覆蓋默認(rèn)值  繼承{name: "hello", type: "preson"}

3.類的super()方法
super關(guān)鍵字出現(xiàn)的前提是使用Class的繼承

class Person { // ... }
    class Student extends Person{
        constructor(){
            super();
        }
    }

為什么會有super

當(dāng)類使用繼承漏健,并實(shí)例化時(shí)赦肃,
es5 的繼承是先創(chuàng)建子類的this,然后將父類的方法添加到子類的this上去携御;
es6 的繼承是創(chuàng)建父類的this對象,然后再對this對象添加方法/屬性徘熔。
而super方法就是用來創(chuàng)建父類this對象的婆排。

使用super()

const proto = {
  foo: 'hello'
};

const obj = {
  foo: 'world',
  find() {
    return super.foo;
  }
};

Object.setPrototypeOf(obj, proto);//使用setPrototypeOf給obj設(shè)置原型對象為proto
obj.find() // "hello"

注意:super用來表示原型對象時(shí)荷科,只能用在對象的方法中,用在其他地方都會報(bào)錯席楚。

靜態(tài)方法調(diào)用

靜態(tài)方法中的super指向父類

class Person {
    static sport(str) {
        console.log(str);
    }
}


class Student extends Person {
    static log() {
        super.sport('調(diào)用到啦RТ蕖!烦秩!');
    }
}

Student.log(); // 調(diào)用到啦?逅埂!只祠!

ES6 規(guī)定兜蠕,通過super調(diào)用父類的方法時(shí),方法內(nèi)部的this指向子類抛寝。
實(shí)際上執(zhí)行的是 super.sport.call(this);

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末熊杨,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子盗舰,更是在濱河造成了極大的恐慌晶府,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钻趋,死亡現(xiàn)場離奇詭異川陆,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)爷绘,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門书劝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人土至,你說我怎么就攤上這事购对。” “怎么了陶因?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵骡苞,是天一觀的道長。 經(jīng)常有香客問我,道長解幽,這世上最難降的妖魔是什么贴见? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮躲株,結(jié)果婚禮上片部,老公的妹妹穿的比我還像新娘。我一直安慰自己霜定,他們只是感情好档悠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著望浩,像睡著了一般辖所。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上磨德,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天最疆,我揣著相機(jī)與錄音兜材,去河邊找鬼棚贾。 笑死纲辽,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的搔弄。 我是一名探鬼主播幅虑,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼顾犹!你這毒婦竟也來了倒庵?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤炫刷,失蹤者是張志新(化名)和其女友劉穎擎宝,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體浑玛,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡绍申,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了顾彰。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片极阅。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖涨享,靈堂內(nèi)的尸體忽然破棺而出筋搏,到底是詐尸還是另有隱情,我是刑警寧澤厕隧,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布奔脐,位于F島的核電站俄周,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏髓迎。R本人自食惡果不足惜峦朗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望排龄。 院中可真熱鬧波势,春花似錦、人聲如沸涣雕。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽挣郭。三九已至,卻和暖如春疗韵,著一層夾襖步出監(jiān)牢的瞬間兑障,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工蕉汪, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留流译,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓者疤,卻偏偏與公主長得像福澡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子驹马,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容