JS - Class繼承
阿新 • • 發佈:2018-08-26
通過 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繼承