实例:

class A {
    sing: () => void;
    word = 'I am SB!';
    protoFunction: (() => void) | undefined;
    constructor() {
        /* 相当于声明了一个普通的属性,只不过属性存的是个函数,
        每一个实例对象独占一个, 如果有多个实例对象, 则浪费内存*/
        this.sing = function () {
            console.log('fuck!');
        }
        /* 与下面的outOfConstruc是等价的,多个实例对象共享同一个函数,
        节约内存 */
        A.prototype.protoFunction = function () {
            console.log("protoFunction!");
        }
    }
    /* 既然都用了class关键字了, 这就是正常做法⭐ */
    outOfConstruct() {
        console.log("out of Construct");
    }
}

通过console.log(new A())打印出来的结果:

  1. sing和word一样, 被当作属性直接储存在实例对象中