Это первая часть про ООП в JS, или Объектно Ориентированное Программирования, в ней вы изучите основные принципы ООП в JavaScript.
Для тех кто не знает что такое ООП, это когда при программирование используются классы и объекты, но об этом всё ниже.
Классы и объекты:
Перед тем как работать с классами и объектам в JS, рассмотрим что это вообще такое.
Если кратко говоря, класс можно сравнить с машиной, то есть класс продукта машина, без марок, без заданных других параметров, тогда как автомобиль мерседес уже можно считать объектом класса машина, так как, у него есть марка другие заданные параметры.
Также класс принято считать типом данных, как числа и строки, но которые создаёт сам программист, а объект соответственно значением этого типа.
JavaScript классы и объекты:
Для начала покажу в JavaScript создание классов, для этого есть два способа, виде функции и через ключевое слова класс, рассмотрим их обоих.
1 2 3 4 5 6 7 8 9 10 11 12 | // Создание класса Car function Car (marka) { // Создание метода класса this.showMarka = function () { // Вывод сообщения о марки alert(this.marka) } } // Объявление объекта класса Car let car = new Car("ВАЗ"); car.showMarka(); |
Тут в начале создаём класс виде функции, внутри делаем метод showMarka()
для отображение сообщения, в котором будет написано название машины, его назначаем во время объявление класса, через ключевое слово new
, после вызываем метод, что такое метод, будет чуть ниже.
Важно:
Важно понимать, что любая функция это объект и любую функцию можно использовать как класс или объект.
Вот что должно получится:
Вот пример с ключевым словом class.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | "use strict"; // Объявление класса Car class Car { // Конструктор класса constructor(marka) { // Создаём свойство marka this.marka = marka; } // Метод Для показа марки showMarka() { // Вывод сообщения о марки alert(this.marka) } } // Объявление объекта класса Car let car = new Car("ВАЗ") // Запуск метода showMarka() car.showMarka() |
Как видите всё плюс/минус одинаково, единственное появился constructor
, но о нём следующей части, в этой сейчас разберём различия если использовать ключевое слово class
.
- Обязательно при объявление нужно использовать слово
new
; - Класс с точки зрения видимости ведёт себя как
let
; - Все методы работают в режиме
use strict
, даже если вы его не указали; - У каждого метода есть родитель;
- Нельзя перечислить методы через
for in
;
Еще стоит сказать, что такой тип создание класса, ещё называют сахар, так как, всё тоже самое можно делать через функцию, тут всё на ваше усмотрение.
JS методы и свойства:
Теперь что такое в JavaScript объекты методы и свойства, первое, это можно сказать функции класса, или действие которое может делать объект, а свойства, это переменные, которые влияют на работу методов.
Но тут стоит сказать, что как говорилось выше, каждая функция это объект, и внутри класса метод тоже может работать как объект, внутри объекта.
Свойства как провела объявляются в конструкторе класса, методы же вне конструктора, а внутри класс.
Примечание:
Если вы не можете понять как это выглядит, то посмотрите второй пример, где показывается создание класса через class
.
Также если вы используете для объявления функцию, то методы можно создавать через ключевое слово prototype, или прототип как называют на русском, но об этом в другой раз.
Ключевое слово this:
Также в прочтение этой статье наверняка вы заметили использование ключевого слова this, надо его разобрать.
Если кратко говоря, то this используется для обращение к контексту и когда мы тут его используем, то обрушаемся к контексту класса или объекта.
Подробнее про контекст прочитаете в одной из следующих частей учебника.
Вывод:
Это не очень большая часть, так как, про классы и объекты в JS особо нечего сказать, здесь были показаны только основные принципы ООП JavaScript.