網頁

2019/2/3

JavaScript ES6 建立一個類別

在JavaScript ES6(ECMAScript 2015)可使用classconstructor來建立類別。

下面範例宣告了一個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效果


參考:

沒有留言:

張貼留言