【发布时间】:2019-11-08 17:01:41
【问题描述】:
我遇到了一个很奇怪的问题:
class AddOrSelectAddress {
static allCountries = {
AD: "Andorra",
AE: "Vereinigte Arabische Emirate",
AF: "Afghanistan",
// ...
};
constructor() {
console.log('new');
console.log(this.allCountries); // prints "undefined"
}
}
const myInstance = new AddOrSelectAddress();
为什么会这样?我希望this.allCountries 将包含该对象。
【问题讨论】:
-
"在非静态方法中使用
this关键字不能直接访问静态方法。您需要使用类名来调用它们:CLASSNAME.STATIC_METHOD_NAME()或将方法作为构造函数的属性:this.constructor.STATIC_METHOD_NAME()。" (Source) - 它用于方法,但我猜这也将计入属性。
标签: javascript ecmascript-6 static ecmascript-2016