真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

ES6中class方法及super關(guān)鍵字

ES6 class中的一些問(wèn)題

記錄下class中的原型,實(shí)例,super之間的關(guān)系

創(chuàng)新互聯(lián)是一家專(zhuān)注于成都網(wǎng)站設(shè)計(jì)、做網(wǎng)站與策劃設(shè)計(jì),商城網(wǎng)站建設(shè)哪家好?創(chuàng)新互聯(lián)做網(wǎng)站,專(zhuān)注于網(wǎng)站建設(shè)十年,網(wǎng)設(shè)計(jì)領(lǐng)域的專(zhuān)業(yè)建站公司;建站業(yè)務(wù)涵蓋:商城等地區(qū)。商城做網(wǎng)站價(jià)格咨詢(xún):13518219792

//父類(lèi)
class Dad {
    constructor(x, y) {
        this.x = 5;
        this.y = 1;
        this.state = 789
    }

    static x = 521

    state1 = 666

    say() {
        console.log("父類(lèi)bark");
    }
    talk = () => {
        console.log("父類(lèi)talk");
    }

    static speak() {
        console.log("父類(lèi)speak");
        console.log(this.state);
    }
    speak(){
        console.log("父類(lèi)不會(huì)speak");
    }
}
//子類(lèi)
class Child extends Dad {
    constructor() {
        super()
        this.x = 987
        this.toString = this.toString.bind(this)
    }

    state = {}

    toString() {
        return '(' + this.x + ', ' + this.y + ')';
    }

    toString1 = () => {
        return '(' + this.x + ', ' + this.y + ')';
    }

    say = () => {
        super.say();
        console.log("子類(lèi)bark");
        console.log(super.x);
    }

    talk = () => {
        super.talk()
        console.log("子類(lèi)talk");
    }

    static speak() {
        super.speak()
        console.log("子類(lèi)speak");
        console.log(super.x);
    }

}

console.log(new Child().x); // 輸出987
console.log(new Child().y); // 輸出1

new Child().say(); // 輸出 父類(lèi)bark  子類(lèi)bark undefined
new Child().talk(); // 報(bào)錯(cuò) super.talk is not a function

Child.speak(); // 父類(lèi)speak undefined 子類(lèi)speak 521
  1. 構(gòu)造器中的this指向?qū)嵗龑?duì)象,在構(gòu)造函數(shù)上定義的屬性和方法相當(dāng)于定義在類(lèi)實(shí)例上的,而不是原型對(duì)象上

  2. 子類(lèi)的toString方法是掛載到原型上的,toString1是掛載到每個(gè)實(shí)例上的

  3. this.toString.bind(this),前面的this是不確定的,取決于調(diào)用方式;
    后面的this指實(shí)例對(duì)象,這行代碼目的是為了固定toString方法的this為實(shí)例對(duì)象,避免函數(shù)賦值給變量時(shí)this丟失

  4. super關(guān)鍵字用于訪(fǎng)問(wèn)和調(diào)用一個(gè)對(duì)象的父對(duì)象上的函數(shù)。

  5. super作為函數(shù)使用,調(diào)用的是父類(lèi)的構(gòu)造函數(shù),而其中的this指向子類(lèi)自己(用父類(lèi)的方法操作自己的東西)

  6. super 作為對(duì)象時(shí),在普通方法中,指向父類(lèi)的原型對(duì)象(只能訪(fǎng)問(wèn)原型上的函數(shù),無(wú)法訪(fǎng)問(wèn)屬性);在靜態(tài)方法中,指向父類(lèi)本身(調(diào)用的是父類(lèi)的靜態(tài)方法或?qū)傩裕?,但是this指向子類(lèi)。


分享文章:ES6中class方法及super關(guān)鍵字
網(wǎng)址分享:http://weahome.cn/article/dsojjji.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部