Menu
Coddy logo textTech

Статические свойства

Часть раздела Объектно-ориентированное программирование путешествия по 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
challenge icon

Задание

Добавьте статические свойства PI и E в класс MathConstants:

  1. Статическое свойство PI со значением 3.14159
  2. Статическое свойство 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
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Объектно-ориентированное программирование