iT邦幫忙

0

[ES6-重點紀錄] class 類別語法

  • 分享至 

  • xImage
  •  

ES6 中的class類別,它是效仿其他程式語言擁有物件導向(OOP)的概念,取代需要原型 prototype 的操作,因為寫法更簡潔與易於理解,用來代替 javascript 傳統建構物件的形式。

class foo {
    // class 的建構子
    constructor(x, y) {
        this.x = x;
        this.y = y;
    }
    
    // class 的方法
    getPoint() {
        return {x, y};
    }
}

typeof foo // "function"
foo === foo.prototype.constructor // true

let f = new foo(10, 20);

console.log(f.getPoint()); // {x: 10, y: 20}

使用特性

基本使用

  • class 本身原型是指向建構函數 function
  • 本身 prototype 的屬性還是存在的
  • 內部有個默認的 constructor 建構子函數
  • class 本身也可以使用表達式的來定義

進階使用

  • 可以使用靜態方法,在定義方法的前面加上 static 關鍵字
  • 可以通過 extends 關鍵字進行物件繼承
  • 繼承後要調用父類的方法或屬性使用 super 關鍵字
  • 缺陷: 目前沒有 "私有(private)/公開(publice)" 方法與屬性的關鍵字,但可以使用新的資料型態 Symbol 唯一性的形式定義

細節用法

可以參考 : ES6 class 關鍵字


圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言