0Pricing
JavaScript Academy · Урок

Поля классов, приватные поля # и статические члены

Создавайте классы с публичными полями, скрывайте данные с помощью приватных полей # и добавляйте статические свойства и методы

«Поля классов, приватные поля # и статические члены» — бесплатный урок JavaScript Academy на CoddyKit. Это урок 1 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения JavaScript Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс JavaScript Academy содержит 3 уроков всего.

Зачем нужны классы

Цель: создавать небольшие понятные классы.

  • Публичные поля и методы
  • #private-поля для скрытого состояния
  • static-свойства и методы для помощников уровня класса
  • Делайте примеры небольшими и понятными
Поля классов, приватные поля # и статические члены — иллюстрация 1

Публичные поля и конструктор

Создайте класс с публичным полем и небольшими методами; для начинающих логика должна оставаться простой.

// Public fields and a simple method
class Counter {
  // public field with default
  value = 0;

  constructor(start) {
    // use a default if start is not provided
    this.value = Number.isFinite(start) ? start : 0;
  }

  inc() {
    this.value = this.value + 1;
  }
}

const c1 = new Counter(2);
c1.inc();
console.log("value:", c1.value); // 3
Поля классов, приватные поля # и статические члены — иллюстрация 2

Закрытые поля #

Поля #private защищаются языком и доступны только внутри тела класса. При необходимости предоставьте методы чтения.

// Private # fields hide internal state
class SafeCounter {
  // private field (only inside the class)
  #value = 0;

  constructor(start) {
    this.#value = Number.isFinite(start) ? start : 0;
  }

  inc() { this.#value = this.#value + 1; }
  getValue() { return this.#value; } // expose via method
}

const sc = new SafeCounter(5);
sc.inc();
console.log("safe value:", sc.getValue());

// External access fails (uncommenting the next line would throw):
// console.log(sc.#value);
Поля классов, приватные поля # и статические члены — иллюстрация 3

Геттеры для безопасного чтения

Геттер может возвращать вычисленное или проверенное значение, сохраняя поле закрытым.

// Getters provide read-only views; simple guard logic
class User {
  #name = "Anonymous";
  constructor(name) {
    if (typeof name === "string" && name.trim().length > 0) {
      this.#name = name.trim();
    }
  }
  get name() {
    return this.#name;
  }
}

const u = new User(" Ayla ");
console.log("name:", u.name);
Поля классов, приватные поля # и статические члены — иллюстрация 4

Статические члены

static-члены вызываются у класса (например, MathHelp.circleArea()), а не у экземпляров.

// Static = belongs to the class, not to instances
class MathHelp {
  static PI = 3.14159;
  static circleArea(r) {
    if (!(typeof r === "number" && r >= 0)) return 0;
    return MathHelp.PI * r * r;
  }
}

console.log("PI:", MathHelp.PI);
console.log("area r=2:", MathHelp.circleArea(2));

// Instances do not have the static members:
const mh = new MathHelp();
console.log("instance has PI?", "PI" in mh); // false
Поля классов, приватные поля # и статические члены — иллюстрация 5

Привычки, удобные для начинающих

Советы:

  • Предпочитайте небольшие классы с небольшим числом понятных методов.
  • Используйте #private для настоящей приватности; символы подчёркивания — лишь соглашение об именовании.
  • Размещайте константы и утилиты среди static-членов.
  • При необходимости предоставляйте минимальный набор методов чтения (геттеров) для доступа извне.
Поля классов, приватные поля # и статические члены — иллюстрация 6

Проверка основ закрытых полей

Быстрая проверка: поля #private.

Поля классов, приватные поля # и статические члены — иллюстрация 7

Повторение

Повторение: используйте публичные поля для простого состояния, #private, чтобы скрывать внутренние детали, и static для помощников уровня класса. Делайте каждый класс небольшим и удобным для чтения.

Поля классов, приватные поля # и статические члены — иллюстрация 8

Часто задаваемые вопросы

Урок «Поля классов, приватные поля # и статические члены» бесплатный?

Да — полный текст урока «Поля классов, приватные поля # и статические члены» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс JavaScript Academy, подпишись на CoddyKit PRO. Курс JavaScript Academy содержит 3 уроков всего.

Чему я научусь в уроке «Поля классов, приватные поля # и статические члены»?

Создавайте классы с публичными полями, скрывайте данные с помощью приватных полей # и добавляйте статические свойства и методы Ты практикуешь JavaScript Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать JavaScript Academy?

Предыдущий опыт не требуется. JavaScript Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 1 из 3.

Сколько времени занимает урок «Поля классов, приватные поля # и статические члены»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке JavaScript Academy?

Да. Каждый урок JavaScript Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Поля классов, приватные поля # и статические члены
  2. Наследование, super и когда предпочесть композицию
  3. Миксины (обзор) — простое повторное использование без глубокой иерархии
← Назад к JavaScript Academy