До 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, вы можете сказать: «Да, я правильно понял».
До свидания до следующего раза…
~ Гури