假设我有两个这样的 ES6 类:
class Base {
static something() {
console.log(this);
}
}
class Derived extends Base {
}
然后我打了这样一个电话:
Derived.something();
请注意,我正在通过子类调用在超类上定义的静态方法。
这不会给我错误。它打印
[Function: Derived]
所以this
在静态方法中访问似乎在这里工作。
我需要一个用于超类的所有子类的通用静态方法,并且我需要能够知道哪个子类正在调用此方法。
现在我的问题是this
在静态方法中使用是否合法。我知道这些静态方法成为类方法,因此this
自然会指向调用它们的类对象。(类对象是构造函数。)
但我似乎找不到任何明确的资源表明 ES 规范允许这样做。
这看起来像是对 ES6 类的一个很好的介绍,但没有谈论this
.static