До ES6, если кто-то по ошибке упомянул класс в Javascript, у него должна была быть такая же реакция, прописанная в заголовке. Было сложно создать класс до ES6, так как не было ключевого слова «класс». Ключевое слово this широко использовалось наряду с прототипами и функциями для получения возможностей класса. Но в ES6 мы можем создать класс, используя ключевое слово class. Мы можем включать классы в наш код либо с помощью выражения класса, либо с помощью объявления класса.
Конструкторы и функции являются единственными элементами данных, разрешенными в определении класса. Классы содержат конструктор, который выделяет память объектам класса. Классы содержат функции, отвечающие за выполнение действий над объектами.
Классы используют прототипическое наследование с использованием конструктора. Это так, потому что классы в Javascript — это не те классы, которые мы видим в других языках программирования. Классы — это синтаксический сахар в Javascript.

Синтаксис класса в javascript аналогичен другим языкам и выглядит следующим образом:

класс имя_класса {
}

Давайте обсудим пример тоже…

class Car {
конструктор(марка, модель, год) {
this.make = make;
this.model = model;
this.year = year;
}

drive() {
console.log(`За рулем ${this.year} ${this.make} ${this.model}.`);
}
}
Здесь определяется класс с именем Car. Конструктор этого класса принимает три параметра: марку, модель и год выпуска. Конструктор устанавливает значения этих параметров в свойства объекта Car, используя ключевое слово this. Также определен метод «привод», который регистрирует сообщение об автомобиле.
Чтобы создать экземпляр класса Car, мы можем использовать ключевое слово new и передать необходимые параметры:

const myCar = new Car(Hyundai, Verna, 2022);

Затем мы можем вызвать метод привода для нашего экземпляра:

мойАвтомобиль.Драйв(); // Результат: «За рулем Hyundai Verna 2022 года».

Наследование также упрощается в ES6. Класс может быть унаследован от другого класса с помощью ключевого слова «extends». За исключением конструкторов родительского класса, дочерний класс наследует все свойства и методы.

Синтаксис наследования следующий:

класс child_class_name расширяет parent_class_name{
}

Давайте теперь унаследуем свойства класса автомобиля, используя ключевое слово «extends»:

class SportsCar расширяет Car {
конструктор (марка, модель, год, topSpeed) {
super (марка, модель, год);
this.topSpeed ​​= topSpeed;
}

drive() {
console.log(`Вождение ${this.year} ${this.make} ${this.model} со скоростью ${this.topSpeed} миль в час!`) ;
}
}
Как видно из примера, класс SportsCar расширяет класс Car. В конструктор класса SportsCar добавлено новое свойство по имени максимальная скорость. Переопределение метода видно в методе привода при добавлении topSpeed.
Мы можем создать экземпляр класса SportsCar и вызвать его метод привода так же, как в классе Car:

const mySportsCar = new SportsCar('Lotus', 'Electre', 2023, 150);

mySportsCar.drive(); // Результат: «За рулем Lotus Electre 2023 года со скоростью 150 миль в час!»

Введение классов в ES6 упрощает использование наследования и обеспечивает абстракцию. Теперь, если вы слышите Class in Javascript, вы можете сказать: «Да, я правильно понял».

До свидания до следующего раза…

~ Гури