ООП JS
- ООП начинается с построения абстракции
- Служит как минимум для структурирования
- Хранит в себе нейкую логику (все необходимые элементы переменные и методы в одной обертке, что позволяет визуально понять для что к чему и для чего)
- ООП js основано на прототипах
В принципах ООП содержиться:
- **Инкапсуляция** - сокрытие переменной, т.е доступ к переменной запрещен (в js доступ к таким переменным обычно делают через **get/set**)
- **Наследование** - когда имеется класс от которого можно наследоваться, т.е получить доступ к переменным и методам.
- **Полиморфизм** - Сразу к примеру: Имеется класс, который является родителем 3 классов, допустим:
```
class User {
constructor(name, password, email) {
this.userName = name;
this.password = password;
this.email = email;
}
loadContent() {
some code...
}
}
class Studen extends User {
constructor() {
some code...
}
loadContent() {//Переписываем метод
return loadStudentContent();
}
}
class Admin extends User {
constructor() {
some code...
}
loadContent() {//Переписываем метод
return loadAdminContent();
}
}
````
Представим, имеется какая-либо площадка, неважно что это будет, сайт курсов или еще что-либо, вся суть в том, что есть 2 класса лиц: Админ и Студент, у одного и второго имеется один и тот же метод, но его реализация для каждого из класса лиц разная.
Создали класс User, у которого имеется конструктор ~~Ля Ля Тополя~~ и также у родителя имеется метод **loadContent**, который описывает загрузку какого-либо контента и у наследников класса User мы можем его переписать, т.е использовать метод, который описан у роддителя, но с какими-то изменениями для определенного класса лиц.
#js #javascript #jsOOPООП JS
- ООП начинается с построения абстракции
- Служит как минимум для структурирования
- Хранит в себе нейкую логику (все необходимые элементы переменные и методы в одной обертке, что позволяет визуально понять для что к чему и для чего)
- ООП js основано на прототипах
В принципах ООП содержиться:
- **Инкапсуляция** - сокрытие переменной, т.е доступ к переменной запрещен (в js доступ к таким переменным обычно делают через **get/set**)
- **Наследование** - когда имеется класс от которого можно наследоваться, т.е получить доступ к переменным и методам.
- **Полиморфизм** - Сразу к примеру: Имеется класс, который является родителем 3 классов, допустим:
```
class User {
constructor(name, password, email) {
this.userName = name;
this.password = password;
this.email = email;
}
loadContent() {
some code...
}
}
class Studen extends User {
constructor() {
some code...
}
loadContent() {//Переписываем метод
return loadStudentContent();
}
}
class Admin extends User {
constructor() {
some code...
}
loadContent() {//Переписываем метод
return loadAdminContent();
}
}
````
Представим, имеется какая-либо площадка, неважно что это будет, сайт курсов или еще что-либо, вся суть в том, что есть 2 класса лиц: Админ и Студент, у одного и второго имеется один и тот же метод, но его реализация для каждого из класса лиц разная.
Создали класс User, у которого имеется конструктор ~~Ля Ля Тополя~~ и также у родителя имеется метод **loadContent**, который описывает загрузку какого-либо контента и у наследников класса User мы можем его переписать, т.е использовать метод, который описан у роддителя, но с какими-то изменениями для определенного класса лиц.
#js #javascript #jsOOP