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