ООП в JavaScript

Lesson 2, Advanced, Shashkov

by shurikation

JavaScript

//ООП в JS как такого нет, он созданный на договоренности программситов, в отличие от Java или PHP. Например, нельзя инкапуслировать в полной мере. Оно реализовано очень своеобразно.

/***DMITRY***/
//Прототипы

const human = {
	firstName: 'Vasya',
  lastName: 'Pupkin',
}

const man = Object.create(human); //объект human становится прототипом объекта man. У объекта man поялвляется _proto__ которое содержит ссылку на объект human. Поэтому он может вытащить man.firstName = 'Vasya';
// Если он не найдет в самом объекте это свойство, то спустится в протоип пока его не найдет. Поскольку объекты имеют ссылочный тип, то если прототип human будет измененен, то эти именения появятся и в man и других образованных от human объектов. Это цепочка прототипов.

//GC - garbage collector - оно освобождает области памяти, на которые никто не ссылается - всякие левые ссылки, если они не используются

//Императивный подход - это использование переменных, функций и прочего. Этого недостаточно. Современные системы требуют более сложных сущеностей. Поэтому ООП и придумали. Мы программируем для автоматизации какого-то бизнеса. Например, автосалон. 

//Например, у нас куча автомобилей, продажу которых надо автоматизировать. Чтобы неа забивать каждую машину в отдельную переменную, то нужно ООП.

//Инкупусулаяция, наследование, полиморфизм и абстракция.

//Абстракция - это выделение конкретных свойств в предметной области. Выделяем только важные нужные нам параментры авто, например, для их продажи, и представление это в виде программы

//Инкапсуляция - это сокрытие методов реализации. Часть реализации объектов открываем наружу, часть скрываем. В данном случае от прграммиста. Защита от дурака, чтобы не сломал ничего. Часть логики объектов скрыта.

//Наследование - создание классов на основе других классов

//Полиморфизм - использует наследование. У всех транспортных редства есть возможность ехать, но реализуют они это возможность по-разному. Кто-то едет на колесах, кто-то плывет, но оба...