Ключевой частью любого кода являются данные, которые мы как-то получаем, обрабатываем, храним и выводим пользователю. Какие-то данные устроены просто, например, те, что представлены строками (тексты книг) или массивами (сообщения в чате), а какие-то достаточно сложно, например, информация о пользователе, которая, может включать в себя десятки и сотни свойств. Ниже пример того, чем является студент на Хекслете:
// Очень упрощенно, в реальности все сложнее
const student = {
name: 'Petya',
encryptedPassword: ...,
facebookId: ...,
payments: [/* платежная информация */],
currentGroup: ...,
finishedCourses: [/* список пройденных курсов */]
};
Один из способов работы с такими данными — описывать функции, которые их обрабатывают, например, меняют пароль. Такой подход называется процедурным программированием:
// Внутри себя делает шифрование и обновление user
// user меняется внутри функций
changePassword(user, 'new secret password');
addFinishedCourse(user, finishedCourse);
Другой способ — добавить в объекты методы и работать через них:
user.changePassword('new secret password');
user.addFinishedCourse(course);
Подход, в котором код представляет из себя набор объектов, взаимодействующих друг с другом, называется объектно-ориентированным программированием (ООП). Объекты в таком подходе, это не просто тип данных "объект", это сущности, которые имеют поведение, то есть методы для работы с ними.
Изучение ООП
Объектно-ориентированное программирование – большая тема, которая пронизывает всю разработку на JavaScript. Ей посвящено сразу несколько курсов, освещающих разные элементы, начиная от синтаксических конструкций, заканчивая подходами в организации кода.
Этот курс знакомит с базовыми концепциями и синтаксисом, немного затрагивает особенности JavaScript, которые сильно выделяют его среди других ООП-языков. Остальные больше посвящены принципам построения программ в ООП стиле и, наконец, внутренностям самого JS, например, прототипам.
Основные темы:
- Объекты
- Классы
- Инкапсуляция
- Сокрытие данных (Data hiding)
- Исключения
Данные темы крайне важны даже для начинающего разработчика на JS потому, что с этими понятиями он начинает сталкиваться буквально с первых дней на новой работе. С другой стороны, требуется немало времени перед тем, как вы сможете действительно качественно использовать изучаемые подходы и техники. К теме объектно-ориентированного программирования мы вернемся в наших курсах еще не раз и углубим не только наше понимание, но и разберемся вместе с его синтаксисом, например, конструкторами и прототипами.
Как подготовиться к этому курсу
Курс рассчитан на тех, кто уже хорошо освоился с объектами и функциями в JavaScript. Если у вас есть с этим сложности, рекомендуем сначала пройти или повторить следующие курсы:

Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
- Статья «Как учиться и справляться с негативными мыслями»
- Статья «Ловушки обучения»
- Статья «Сложные простые задачи по программированию»
- Урок «Как эффективно учиться на Хекслете»
- Вебинар «Как самостоятельно учиться»
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.