访问类和构造函数中的ES6 / ES7静态类变量

时间:2019-11-08 17:01:41

标签: javascript ecmascript-6 static ecmascript-7

我遇到了一个很奇怪的问题:

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会在其中包含对象。

1 个答案:

答案 0 :(得分:2)

静态方法和属性可以通过类而不是通过 this 关键字进行访问:

class AddOrSelectAddress {
    static allCountries = {
        AD: "Andorra",
        AE: "Vereinigte Arabische Emirate",
        AF: "Afghanistan",
        // ...
    };

    constructor() {
        console.log('new');
        console.log(AddOrSelectAddress.allCountries);
    }
}

const myInstance = new AddOrSelectAddress();

相关问题