---
# System prepended metadata

title: Untitled

---

ООП 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