JS 09 - 类别函式

大家好!

今天要介绍的是类别函式,就是将前几天的主题全都打包在一起的写法。
那麽油门踩下去吧!


物件模板

其实,对於 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,我们明天再见!


<<:  (Day24) 处理非同步的 Promise

>>:  那些被忽略但很好用的 Web API / Selection

[30天 Vue学好学满 DAY25] axios API

vue.js2.0後版本推荐使用axios来完成ajax请求 为Promise-based HTTP...

Day10. 深入了解 Block - Block Part3

在Block系列文章里面 Day8 提到了Block, Proc Day9 提到了yield Day...

学习Python纪录Day27 - Regular Expression正规表达式

正规表达式(Regular Expression) 一个范本的字串,在范本字串的每一个字元都有特殊意...

[DAY 02] Google Apps Script

要操控google 的档案如google drive, google sheet, ...等 你除了...

[常见的自然语言处理技术] 文本相似度(III): Word2vec带你深入word embeddings

前言 继续来讨论语意相似度,今天我们将深入探讨如何实现 word embedding 。也就是说,我...