调用静态方法的标准方法是什么?我可以考虑使用 constructor
或使用类本身的名称,我不喜欢后者,因为它没有必要。前者是推荐的方式,还是有其他方式?
这是一个(人为的)示例:
class SomeObject {
constructor(n){
this.n = n;
}
static print(n){
console.log(n);
}
printN(){
this.constructor.print(this.n);
}
}
原文由 simonzack 发布,翻译遵循 CC BY-SA 4.0 许可协议
这两种方式都是可行的,但是当涉及到使用重写的静态方法进行继承时,它们会做不同的事情。选择您期望其行为的行为:
通过类引用静态属性实际上是静态的,并且不断地给出相同的值。使用
this.constructor
将使用动态分派并引用当前实例的类,其中静态属性 可能 具有继承值但也可以被覆盖。这符合 Python 的行为,您可以选择通过类名或实例
self
来引用静态属性。如果您希望静态属性不被覆盖(并且始终引用当前类中的一个), 就像在 Java 中一样,请使用显式引用。