Иногда нам может понадобиться объявить статические константы в наших классах JavaScript.
В этой статье мы рассмотрим, как объявлять статические константы в классах ES6.
Добавить геттеры в наш класс
Чтобы объявить статические константы в наших классах ES6, мы можем объявить константы вне класса и добавить геттеры, которые возвращают константы в нашем классе.
Например, мы можем написать:
const constant1 = 3, constant2 = 2; class Example { static get constant1() { return constant1; } static get constant2() { return constant2; } } console.log(Example.constant1) console.log(Example.constant2)
Мы объявляем constant1
и constant2
.
Затем в классе Example
мы создаем геттеры constant1
и constant2
.
Мы добавляем ключевое слово static
перед get
, чтобы сделать его статическим.
Затем в функции получения мы возвращаем значения constant1
и constant2
соответственно.
Точно так же мы можем написать:
class Example { static get constant1() { return 3 } static get constant2() { return 2 } } Object.freeze(Example); console.log(Example.constant1) console.log(Example.constant2)
что эквивалентно тому, что мы написали выше.
Поэтому, когда мы регистрируем значения Example.constant1
и Example.constant2
, мы видим 3 и 2 соответственно.
Object.freeze
Мы можем заморозить класс, чтобы сделать весь класс неизменяемым.
Для этого пишем:
class Example {} Example.constant1 = 3 Example.constant2 = 2 Object.freeze(Example); console.log(Example.constant1) console.log(Example.constant2)
Мы добавляем наши статические свойства с помощью:
Example.constant1 = 3 Example.constant2 = 2
Это работает, поскольку классы являются функциями-конструкторами, которые являются объектами.
Это также означает, что мы можем использовать метод Object.freeze
для Example
, чтобы сделать класс Example
неизменяемым.
Таким образом, мы можем регистрировать значения свойств Example.constant1
и Example.constant2
и получать их значения.
Мы должны увидеть 3 и 2 соответственно.
Заключение
Мы можем объявить статические константы в нашем классе JavaScript, объявив статические геттеры, которые возвращают константы, объявленные вне класса.
Кроме того, мы можем заморозить класс с помощью метода Object.freeze
, так как это обычный объект.
Это делает класс неизменяемым.
Больше контента на plainenglish.io. Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Получите эксклюзивный доступ к возможностям написания и советам в нашем сообществе Discord.