intermediate

Классы и конструкторы

Синтаксис классов поверх прототипов, правила конструкторов, поля, наследование и private members.

Классы — синтаксический сахар над прототипами со строгими правилами. `extends` и `super` настраивают наследование. Производный конструктор должен вызвать `super()` до использования `this`.

Методы на прототипе (общие). Стрелочные поля класса создают функцию на экземпляр. Private fields (`#id`) — не обычные свойства.

Классы JavaScript отличаются от Java/C#: нет настоящей приватности без `#`, нет перегрузки, методы не привязаны автоматически.

На интервью объясняйте концепцию на конкретном примере и называйте поведение рантайма, которое проверяют.

Типовые ошибки: путать похожие API и забывать edge cases в live coding.

Компромисс часто между ясностью и производительностью или между безопасностью и удобством.

Чеклист:

  • Упомяните разделение методов на прототипе.
  • Вызывайте super до this в производных конструкторах.
  • Привязывайте методы или используйте поля осознанно.