在JavaScript ES6(ECMAScript 2015)可使用class
及constructor
來建立類別。
下面範例宣告了一個Employee
類別,其中定義了類別的屬性及函式,然後使用new
來建立類別的實例(instance)。
class Employee {
constructor(id, name) {
this.id = id;
this.name = name;
}
showInfo(){
console.log("id:" + this.id +", name:" + this.name);
}
getInfo() {
return "id:" + this.id +", name:" + this.name;
}
}
// 建立Employee的實例
const john = new Employee("A0001", "John");
john.showInfo(); // id:A0001, name:John
const mary = new Employee("A0002", "Mary");
console.log(mary.getInfo()); // id:A0002, name:Mary
上面宣告類別的方式稱為class declaration或class statement。
另一種宣告類別方式為class expression,參考以下:
var Employee = class { // <--這邊不同
constructor(id, name) {
this.id = id;
this.name = name;
}
showInfo(){
console.log("id:" + this.id +", name:" + this.name);
}
getInfo() {
return "id:" + this.id +", name:" + this.name;
}
}
const john = new Employee("A0001", "John");
john.showInfo(); // id:A0001, name:John
const mary = new Employee("A0002", "Mary");
console.log(mary.getInfo()); // id:A0002, name:Mary
以上兩種方式的效果相同。
注意class的宣告並沒有如function宣告的hoisting效果。
參考:
沒有留言:
張貼留言