> Как работают классы в JavaScript? (JavaScript)

Уровень: senior · Роль: frontend · Категория: Технические вопросы

Компании: Kodix

Стек: JavaScript

> Пример ответа

Классы в JavaScript - это синтаксический сахар над прототипным наследованием. Они были введены в ES6, чтобы сделать работу с объектами и наследованием более привычной для разработчиков, знакомых с классическими ООП-языками.

Внутри класс - это функция. Например, class MyClass {} создаёт функцию с именем MyClass. Методы, определённые внутри класса, записываются в свойство MyClass.prototype. Когда вы создаёте экземпляр через new MyClass(), JavaScript:

  1. Создаёт новый пустой объект.
  2. Устанавливает прототип этого объекта в MyClass.prototype.
  3. Вызывает конструктор класса с привязкой this к новому объекту.
  4. Возвращает объект (если конструктор не вернул другой объект).

Ключевые особенности:

  • Конструктор (constructor) - специальный метод для инициализации.
  • Методы экземпляра объявляются без ключевого слова function и автоматически попадают в прототип.
  • Статические методы (через static) привязываются к самому классу, а не к прототипу.
  • Наследование через extends настраивает цепочку прототипов: ChildClass.prototype.__proto__ указывает на ParentClass.prototype.
  • В конструкторе наследника обязательно вызывать super() до использования this.

Пример:

JAVASCRIPT
class Animal {
constructor(name) {
this.name = name;
}
speak() {
console.log(`${this.name} издаёт звук`);
}
}
class Dog extends Animal {
speak() {
console.log(`${this.name} лает`);
}
}
const dog = new Dog('Рекс');
dog.speak(); // "Рекс лает"

Несмотря на удобство, классы не добавляют нового механизма - это просто более чистая запись прототипов.

> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?

Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью