Введение в классы и объекты в JavaScript
Сейчас мы с вами займемся изучением ООП в JavaScript. Давайте рассмотрим пример из жизни, а потом перенесем его на JavaScript.
В качестве примера возьмем автомобиль. У него есть колеса, цвет, вид кузова, объем двигателя и так далее. Кроме того, водитель может отдавать ему команды: ехать, остановится, повернуть направо, налево и тп.
Можно говорить о том, что существует некоторый класс автомобилей, обладающий общими свойствами (у всех есть колеса и всем им можно отдавать команды).
Конкретный автомобиль, стоящий на улице - это представитель этого класса, или, другими словами, объект этого класса. У всех объектов этого класса есть свойства: количество колес, цвет, вид кузова и методы: ехать, остановится, повернуть направо, налево.
Другими словами сам класс - это чертеж, по которым на заводе делаются автомобили. Объект же - это сама машина, сделанная по этим чертежам.
В JavaScript класс создается с помощью ключевого
слова class
, за которым следует название
этого класса. Давайте сделаем класс Car
:
class Car {
// тут код, то есть JavaScript-чертеж автомобиля
}
Укажем теперь в нашем чертеже, что любой автомобиль, созданный по этому чертежу, будет иметь свойство для цвета и свойство для количества топлива.
Для этого внутри класса напишем свойство
color
и свойство fuel
:
class Car {
color; // цвет автомобиля
fuel; // количество топлива
}
Давайте теперь сделаем методы нашего класса.
В JavaScript методы похожи на обычные функции,
только объявляются без ключевого слова function
.
Как уже упоминалось выше, наш автомобиль может ехать, может поворачивать, может останавливаться. Сделаем соответствующие методы в нашем классе:
class Car {
color; // цвет автомобиля
fuel; // количество топлива
// Команда ехать:
go() {
// какой-то JavaScript код
}
// Команда поворачивать:
turn() {
// какой-то JavaScript код
}
// Команда остановиться:
stop() {
// какой-то JavaScript код
}
}
Мы с вами сделали чертеж нашего автомобиля. Теперь нужно отправится на завод и сделать объект этого класса (то есть конкретный автомобиль).
В JavaScript это делается с помощью ключевого слова
new
, после которого пишется имя класса:
new Car; // командуем заводу сделать автомобиль
Однако, если просто создать объект класса - это ни к чему не приведет (это все равно, что, к примеру, объявить массив и никуда его не записать). Нам нужна переменная для хранения этого объекта.
Пусть эта переменная будет называться myCar
- запишем в нее созданный нами объект:
let myCar = new Car;
После создания автомобиля можно обращаться к его свойствам. Обращение к ним происходит через точку. Давайте установим свойства нашего объекта:
let myCar = new Car; // командуем заводу сделать автомобиль
myCar.color = 'red'; // красим в красный цвет
myCar.fuel = 50; // заливаем топливо
Все, наш автомобиль создан, покрашен и заправлен. Теперь мы можем отдавать ему команды через методы этого автомобиля.
Обращение к методам также происходит через точку, но, в отличие от свойства, после имени метода следует писать круглые скобки. Давайте покомандуем нашим объектом:
myCar.go();
myCar.turn();
myCar.stop();