Статические свойства
Часть раздела Объектно-ориентированное программирование путешествия по JavaScript на Coddy — урок 32 из 56.
Статические свойства принадлежат самому классу, а не экземплярам класса. Они являются общими для всех экземпляров.
Определите класс со статическим свойством:
class Counter {
// Определите статическое свойство
static count = 0;
constructor() {
// Увеличивайте статическое значение count при каждом создании нового экземпляра
Counter.count++;
}
}Доступ к статическому свойству осуществляется с использованием имени класса:
console.log(Counter.count); // 0
// Создание нескольких экземпляров
const counter1 = new Counter();
const counter2 = new Counter();
console.log(Counter.count); // 2Статические свойства полезны для значений, которые должны быть общими для всех экземпляров, или для констант на уровне класса. Например:
class MathConstants {
static GOLDEN_RATIO = 1.61803;
}
console.log(MathConstants.PI); // 3.14159Задание
Добавьте статические свойства PI и E в класс MathConstants:
- Статическое свойство
PIсо значением3.14159 - Статическое свойство
Eсо значением2.71828
Шпаргалка
Статические свойства принадлежат самому классу, а не его экземплярам. Они являются общими для всех экземпляров и доступ к ним осуществляется через имя класса.
Определите статическое свойство с помощью ключевого слова static:
class Counter {
static count = 0;
constructor() {
Counter.count++;
}
}Доступ к статическим свойствам осуществляется через имя класса:
console.log(Counter.count); // 0
const counter1 = new Counter();
const counter2 = new Counter();
console.log(Counter.count); // 2Статические свойства полезны для констант на уровне класса:
class MathConstants {
static PI = 3.14159;
static E = 2.71828;
}
console.log(MathConstants.PI); // 3.14159Попробуйте сами
import { MathConstants } from './constants.js';
// Тестовый код - не изменять
console.log(MathConstants.PI); // Должно вывести 3.14159
console.log(MathConstants.E); // Должно вывести 2.71828
В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Объектно-ориентированное программирование
1Объекты и ключевое слово this
Краткий обзор: ОбъектыДобавление методов в объектыПонимание ключевого слова thisФункции-конструкторыКлючевое слово newИтоговое испытание7Наследование и ключевое слово extends
НаследованиеОтношение «is-a»Ключевое слово extendsМетод super()Наследование свойств и методовИтоговое испытание10Полиморфизм
Что такое полиморфизм?Переопределение унаследованных методовИспользование superИтоговое задание13Композиция против наследования
Отношения «has-a» и «is-a»Ограничения глубокого наследованияСоздание объектов2Организация кода
Что такое модули?Экспорт с помощью exportИмпорт с помощью importDefault против именованных экспортов5Инкапсуляция и доступ
ИнкапсуляцияПубличные и приватные поля классовПриватные методыЗадание на повторение8Организация кода ООП
Организация классов в модули11Проект: Отрисовщик фигур
Настройка: Класс Shape и экспортНаследование класса Circle14Система управления библиотекой
Проектирование библиотекиКласс Book с использованием композиции6Проект: Простой банковский счет
Класс BankAccountПополнение и снятие средств9Статические методы и свойства
Уровень класса против уровня экземпляраСтатические свойстваСтатические вспомогательные методыЗадание на закрепление