1. 程式人生 > >JS - Class繼承

JS - Class繼承

通過 nbsp prot () function primer 我們 return 構造函數

我們先回顧用函數實現Student的方法:

function Student(name) {
    this.name = name;
}

Student.prototype.hello = function () {
    alert(‘Hello, ‘ + this.name + ‘!‘);
}

如果用新的class關鍵字來編寫Student,可以這樣寫:

class Student {
    constructor(name) {
        this.name = name;
    }

    hello() {
        alert(‘Hello, ‘ + this.name + ‘!‘);
    }
}

比較一下就可以發現,class的定義包含了構造函數constructor和定義在原型對象上的函數hello()

class定義對象的另一個巨大的好處是繼承更方便了,一想我們從Student派生一個PrimaryStudent需要編寫的代碼量。現在,原型繼承的中間對象,原型對象的構造函數等等都不需要考慮了,直接通過extends來實現:
class primereStudent extends Student(name,grade){
    constructor(name,grade){
        super(name);
        this.grade=grade;
    }
    saygrade(){
        return (‘My grade is: ‘ + this.grade );
    }
}

解釋: 要想繼承,必須有 extends,constructor ,super(xxxx), 我們這裏,constructor構造函數,name 是 我們繼承過來的,所以要super(name)/*類似python*/, grade是新參數,所以要 this.grade=grade,

asygrade 是 我們自己的函數,所以聲明。


JS - Class繼承