iT邦幫忙

2021 iThome 鐵人賽

DAY 9
0

大家好!

今天要介紹的是類別函式,就是將前幾天的主題全都打包在一起的寫法。
那麼油門踩下去吧!


物件模板

其實,對於 C++、Java、PHP、Python 和 Ruby 等程式語言來說,類別是用來建立物件的模板。
但是,對於 JavaScript 來說,類別只是函式般的存在,因為 JavaScript 並沒有類別模板,因此 ES6 問世前,建構函式一直是用來建立物件模板的唯一方法。

typeof (class {}); // 'function'
typeof (function () {}); // 'function'

class 就是 ES6 新增的語法糖,換湯不換藥的意思。


類別函式

class Ironman {
    /* 建構函式 */
    constructor(n, d, p) {
        this.name = n;
        this.date = d;
        this.post = p;
    }

    /* 原型方法 */
    finish() {
        if (new Date(this.date) < new Date('2021-10-15')) return;
        this.status = true;
        console.log('Congratulations!');
    }

    /* 靜態方法 */
    static progress(date) {
        let c = new Date(date);
        let p = (c - new Date('2021-09-15')) / 86400000 / 30 * 100;
        return Math.round(p) + '%';
    }
}

綜合前幾天的舉例,使用類別函式的寫法就像上方這樣。
很直覺吧,靜態方法就在前方加上 static 就好,也不用多寫物件的屬性。


差不多也到尾聲了。
如果對文章有任何疑問,歡迎於下方提問和建議!
我是 Felix,我們明天再見!


上一篇
JS 08 - 靜態方法
下一篇
JS 10 - 原型繼承
系列文
JavaScript 從 50% 開始,打造函式庫不是問題!46
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言