在 JavaScript 中並沒有真正的「類別」,使用 class 宣告出來的內容其實是「函式」,也就是說類別是 ES6 中增加的語法糖。
基礎建立物件、建構子、方法宣告:
等效於:
註: 如果需要使用 super() 關鍵字,則需要將 super 放在方法的首行
基礎建立物件、建構子、方法宣告:
class User {
// 建構子
constructor(id, name) {
this.age = id;
this.name = name;
}
// 方法
toString() {
return this.age + " " + this.name;
}
}
let user1 = new User(1, "John");
let user2 = new User(2, "Mary");
console.log(user1.toString()); // 1 John
console.log(user2.toString()); // 2 Mary
靜態方法
class User {
// 靜態方法
static compare(user1, user2) {
return user1.age === user2.age && user1.name === user2.name;
}
}
等效於:
class User {
}
User.compare = function (user1, user2) {
return user1.age === user2.age && user1.name === user2.name;
}
類別繼承
使用 extends 關鍵字繼承,並在方法中可以使用 super 關鍵字呼叫父類別中的同名方法。
class Admin extends User {
constructor(id, name, role) {
super(id, name);
this.role = role;
}
toString() {
return super.toString() + " " + this.role;
}
}
註: 如果需要使用 super() 關鍵字,則需要將 super 放在方法的首行
留言
張貼留言
如果有任何問題、建議、想說的話或文章題目推薦,都歡迎留言或來信: a@ruyut.com