Является ли класс (class) в ES6 принципиально новой конструкцией или это синтаксический сахар над функцией-конструктором?

В ES6 класс (class) — это синтаксический сахар над функциями-конструкторами и прототипным наследованием.

Короткий ответ

Что ответить на собеседовании

В ES6 класс (class) — это синтаксический сахар над функциями-конструкторами и прототипным наследованием. Под капотом класс всё так же создаёт функцию-конструктор и методы на прототипе, но синтаксис более читаемый и похож на классы из других языков.

Подробный разбор

Ответ с пояснениями

В ES6 класс (class) — это синтаксический сахар над функциями-конструкторами и прототипным наследованием. Под капотом класс всё так же создаёт функцию-конструктор и методы на прототипе, но синтаксис более читаемый и похож на классы из других языков.

Пример:

class Person {
  constructor(name) {
    this.name = name;
  }
  greet() {
    console.log(`Привет, меня зовут ${this.name}`);
  }
}

// Аналог на ES5:
function Person(name) {
  this.name = name;
}
Person.prototype.greet = function() {
  console.log('Привет, меня зовут ' + this.name);
};

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее