Языки программирования были процедурными — определяли пошаговые инструкции, которым должен был следовать компьютер, и какое-то время это работало хорошо, но когда вы хотите запрограммировать что-то, выходящее за рамки базовой последовательности шагов, процедурными языками становится трудно управлять. Вот где на помощь приходит объектно-ориентированное программирование.

Объектно-ориентированное программирование собирает информацию в отдельные сущности, называемые объектами.
В программировании каждая физическая вещь в мире может быть представлена ​​как объект. Объект может быть чем угодно; машина, человек, дом. Это вещь или идея, которую вы хотите смоделировать в своей программе.

Объектно-ориентированное программирование упрощает организацию данных и кода таким образом, чтобы это было более универсальным для более крупных проектов. Классы похожи на предварительные объекты; чертежи для создания объекта, похожего на чертеж дома.
Каждый объект представляет собой набор данных, которые рассматриваются как единое целое. Внутри этих объектов находятся данные — как переменные, так и методы.

Объекты состоят из характеристик (свойств) и действий (методов).

В качестве объекта возьмем автомобиль.

Все автомобили имеют цвет, марку, размер, и все эти характеристики известны как свойства (переменные) объекта. Свойства представлены именем и значением, например, «цвет: зеленый». Свойства имеют значение.

Чтобы представить это с помощью javascript

let car ={
colour:”blue”,
make:”BMW’’,
}

Методы представляют, как люди или другие вещи взаимодействуют с объектом (действиями). Они также извлекают или обновляют свойство объектов.
Действия объекта автомобиля будут включать в себя; привод, задний ход…

let car ={
colour:”blue”,
make:”BMW’’,
drive: function(){
console.log(“The car is on”);
} //The functions in an object is referred to the method
}

Создание объекта

Использование литерала объекта – самый простой способ определить объект.

let objectName ={
//properties and methods go in here
}

Автомобильный объект в качестве примера у нас есть

let car ={
colour:”blue”,
make:”BMW’’,
drive: function(){
console.log(“The car is on”);
}
}

Для доступа к различным членам объекта используется запись через точку;

car.colour;//to access the colour of the car
car.make;//To access the make of the car

Литеральный метод объекта работает, но это не лучший способ создать объект и дублировать его, если он имеет более одного метода. Если объект имеет более одного метода, говорят, что он имеет поведение.

Хотите Создать еще один автомобиль? Придется заново писать весь объект с нуля
Создать 3-ю машину? Перепишите объект еще раз…
Видите этот шаблон? Это в основном копирование и вставка определенного кода снова, что очень небрежно и очень неэффективно.

Чтобы решить эту проблему, мы используем функцию конструктора для создания объекта.

Функция конструктора включает использование ключевых слов this и new
Ключевое слово this является ссылкой на объект, который выполняет кусок кода.

function ObjectName(){
}

Переписав код выше

function Car (colour,make) {
this.colour =colour
this.make=make
//replaced the drive function above with a details function
this.details = function(){
console.log("My car is a"+make+"car" )
}
}

С помощью этой функции создать новый автомобиль будет легко, используя ключевое слово новый;

let Camry= new car("gold","camry")

Ключевые моменты

Объекты в javascript очень похожи на объекты в реальной жизни, они могут иметь свойства и то, что они могут делать (методы).
Обычно мы используем литералы объектов или функции-конструкторы для создания объектов.
Доступ к членам объекта осуществляется с помощью запись через точку.
Функция-конструктор использует this и ключевое слово new.
Оператор new создает новый экземпляр объекта.