静态方法
静态方法和属性是在类/构造函数本身上定义的,而不是在实例对象上定义的。这些是使用 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"