Доступ к статической переменной класса ES6 / ES7 внутри класса и конструктора - PullRequest
1 голос
/ 08 ноября 2019

У меня довольно странная проблема:

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 Ответ

2 голосов
/ 08 ноября 2019

Статические методы и свойства доступны через классы, а не через 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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...