靜態方法

靜態方法和屬性是在類/建構函式本身上定義,而不是在例項物件上定義的。這些是使用 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"