Языки программирования были процедурными — определяли пошаговые инструкции, которым должен был следовать компьютер, и какое-то время это работало хорошо, но когда вы хотите запрограммировать что-то, выходящее за рамки базовой последовательности шагов, процедурными языками становится трудно управлять. Вот где на помощь приходит объектно-ориентированное программирование.
Объектно-ориентированное программирование собирает информацию в отдельные сущности, называемые объектами.
В программировании каждая физическая вещь в мире может быть представлена как объект. Объект может быть чем угодно; машина, человек, дом. Это вещь или идея, которую вы хотите смоделировать в своей программе.
Объектно-ориентированное программирование упрощает организацию данных и кода таким образом, чтобы это было более универсальным для более крупных проектов. Классы похожи на предварительные объекты; чертежи для создания объекта, похожего на чертеж дома.
Каждый объект представляет собой набор данных, которые рассматриваются как единое целое. Внутри этих объектов находятся данные — как переменные, так и методы.
Объекты состоят из характеристик (свойств) и действий (методов).
В качестве объекта возьмем автомобиль.
Все автомобили имеют цвет, марку, размер, и все эти характеристики известны как свойства (переменные) объекта. Свойства представлены именем и значением, например, «цвет: зеленый». Свойства имеют значение.
Чтобы представить это с помощью 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 создает новый экземпляр объекта.