静态方法

静态方法和属性是在类/构造函数本身上定义,而不是在实例对象上定义的。这些是使用 static 关键字在类定义中指定的。

class MyClass {
    static myStaticMethod() {
        return 'Hello';
    }

    static get myStaticProperty() {
        return 'Goodbye';
    }
}

console.log(MyClass.myStaticMethod()); // logs: "Hello"
console.log(MyClass.myStaticProperty); // logs: "Goodbye"

我们可以看到在对象实例上没有定义静态属性:

const myClassInstance = new MyClass();

console.log(myClassInstance.myStaticProperty); // logs: undefined

但是,它们在子类定义的:

class MySubClass extends MyClass {};

console.log(MySubClass.myStaticMethod()); // logs: "Hello"
console.log(MySubClass.myStaticProperty); // logs: "Goodbye"