22. JS с нуля, ваще с нуля: объекты

Оценить качество материала и подачу материала автором видео:

Front-end

Трудоустройтесь middle front-end разработчиком на React JS (TypeScript) за 12-16 месяцев обучения с ежедневной менторской поддержкой в формате видео 1 на 1 и коммерческими проектами в портфолио

Перейти на курс
Front-end

Back-end

Трудоустройтесь middle back-end разработчиком за 12-16 месяцев обучения с ежедневной менторской поддержкой в формате видео 1 на 1 и коммерческими проектами в портфолио

Перейти на курс
Back-end

Карьерный бустер

Получите коммерческий опыт на реальных стартапах, прокачайте tech & soft навыки, научитесь работать в команде, проходить собеседования и получите первую работу в IT!

Перейти на курс
Карьерный бустер

Основы Front-end

Сделайте первый шаг в IT, освоив базовые знания разработки и научившись создавать небольшие проекты на JavaScript

Перейти на курс
Основы Front-end

Основы Back-end

Сделайте первый шаг в IT, освоив базовые знания разработки. Без опыта. Без математики. Только практика: JavaScript, SQL, Node JS, база данных

Перейти на курс
Основы Back-end

Объекты

Автор конспекта: Андрей Шамара

Введение в объекты JavaScript

В этом разделе мы рассмотрим фундаментальное понятие объектов в JavaScript, их структуру, компоненты и роль в моделировании реального мира.

1. Что такое объект в JavaScript?

👉

Объекты — это основные строительные блоки JavaScript, предназначенные для хранения связанных данных и функций.

👉

Они моделируют объекты из реального мира, которые обладают характеристиками (данными) и способностями (действиями).

2. Компоненты объекта

Свойства (Properties)

Характеристики или данные, связанные с объектом. Они представляют собой пары "ключ-значение".

Пример: name (имя автомобиля), speed (скорость), isTurnOn (включен ли).

Свойства могут быть разных типов данных: строки, числа, булевы значения, и даже другие объекты (подобъекты).

Методы (Methods)

Действия, которые объект может выполнять. По сути, это функции, которые являются свойствами объекта.

Пример: start() (запустить автомобиль), drive() (ехать).

Методы изменяют состояние (свойства) объекта.

3. Инкапсуляция

💡

Инкапсуляция — это принцип сокрытия внутренней логики и состояния объекта от внешнего мира.

Объект сам управляет своими данными и действиями. Внешний код взаимодействует с объектом через его публичный интерфейс (свойства и методы), не вникая в детали внутренней реализации.

Преимущества инкапсуляции:

  • Упорядоченность кода: Предотвращает хаос от разрозненных данных и функций
  • Изоляция: Предотвращает коллизии имен переменных и функций в глобальной области видимости
  • Модульность: Упрощает разработку и отладку, позволяя работать с независимыми логическими блоками

4. Моделирование реальности

  • Весь мир состоит из объектов (например, человек, машина, здание, город, планета)
  • Объекты могут содержать подобъекты (например, машина содержит двигатель; человек содержит мозг, сердце)
  • Объекты взаимодействуют друг с другом
  • Абстрактные понятия также могут быть объектами (например, "грусть" с уровнем грусти и методом "превратить в счастье", "банковский счет", "профиль пользователя")

Создание и манипулирование объектами в JavaScript

В этом разделе мы рассмотрим практические аспекты создания объектов и взаимодействия с их свойствами и методами.

1. Создание объекта (литерал объекта)

Самый простой способ создания объекта — использование фигурных скобок {}.

js
// Создание пустого объекта
let car1 = {}
 
// Объект с заполненными свойствами
let car2 = {
  name: "Renault Stepway",
  isTurnOn: false,
  speed: 0,
  engine: {
    volume: 1.6,
    horsePower: 120,
  },
}

Свойства разделяются запятыми(,). Последнее свойство также может иметь запятую (trailing comma), но это необязательно.

2. Доступ к свойствам

Точечная нотация: Используется для доступа к свойствам по их имени.

js
car2.name
car2.engine.volume
⚠️

Если свойство не существует, будет возвращено undefined. Попытка доступа к свойству undefined значения приведет к ошибке.

3. Изменение свойств

Свойства можно изменять, присваивая им новые значения.

js
car2.speed = 100
car2.engine.volume = 2.0

4. Методы

Методы — это функции, присвоенные свойствам объекта.

js
let car3 = {
  // ... свойства ...
  start: function () {
    // Логика запуска автомобиля
  },
}
 
// Вызов метода
car3.start()

5. Ключевое слово this

Внутри метода this ссылается на сам объект, которому принадлежит метод.

js
let car4 = {
  name: "Renault Stepway",
  isTurnOn: false,
  speed: 0,
  start: function () {
    this.isTurnOn = true // Изменяем свойство текущего объекта
    this.speed = 10
    this.engine.isTurnOn = true // Предполагая, что у engine есть свойство isTurnOn
  },
}
⚠️

Без this, метод мог бы случайно создать глобальные переменные с такими же именами, что привело бы к ошибкам и непредсказуемому поведению.

6. Взаимодействие с DOM-элементами как объектами

HTML-элементы, получаемые через document.getElementById(), также являются объектами в JavaScript.

У них есть свои свойства (например, src для изображений, value для полей ввода) и методы (например, addEventListener()).

Это подчеркивает, что концепция объектов пронизывает всю разработку на JavaScript.

🔗

Больше деталей о возможностях ключевого слова this смотрите в документации this

7. Все в JavaScript — объекты

В JavaScript почти все является объектом: массивы, функции, даже примитивные типы (хотя и имеют специальное поведение).

Это делает JavaScript объектно-ориентированным языком программирования.

🔗

Больше деталей о объектно-ориентированном программировании смотрите в статье ООП

Боевой маршрут (JS Ваще с нуля)

Видеоурок - 23 видео из 29