{
class People {
constructor(name)
{
this.name = name;
}
sayName() {
console.log(this.name);
}
};
class Student extends People {
constructor(name, grade)
{
super(name);
this.grade = grade;
}
sayGrade() {
console.log(this.grade);
}
};
const stu = new Student('adiu', '幼兒園');
stu.sayGrade();
stu.sayName();
}
說明
子類可以繼承父類的所有屬性和方法
supper()方法調用父類的構造函數(即父類的** this **);子類必須在constructor方法中調用 supper() ,否則新建實例時會報錯 this is not defined ,這是因為子類沒有自己的 this對象,而是繼承父類的this對象,然后對其進行加工;如果不調用super方法,子類就得不到this對象
{
class People {
constructor(name)
{
this.name = name;
}
get name() {
return this._name.toString().toUpperCase();
}
set name(name) {
this._name = name;
}
sayName() {
console.log(this.name);
}
};
const result = new People('adiu');
console.log(result.name);
console.log(result._name);
result.sayName();
}
說明
在class內部使用 get 和 set 關鍵字,對某個屬性設置取值和賦值函數(定義讀寫器),攔截該屬性的存取行為