Про объекты в JavaScript



Если подходить формально как в книжках, то объект по определению - это ассоциативный массив.



Стало понятнее? Неа, нифига 😅 Вот и мне было непонятно в самом начале.



Сухие определения не помогают понять, когда и как применять на практике этот тип данных



Объект - это контейнер для структурирования информации.



const bottle = {};



Давай приведу аналогию из жизни.



В прошлом посте про массивы мы были в магазине, и на полке стояли бутылки с водой.



А что если бутылки не одинаковы. И в целом, бутылка с водой - это не что-то единое.



Есть бренд воды, место добычи, объем бутылки, объем воды в бутылке и ряд других свойство.



const bottle = {

brand: 'Bon Aqua',

volume: 1, // 1 литр

water: 1, // бутылка новая, ничего не пили еще

extraction: 'Baikal'

};



А когда ты делаешь глоток, то объем воды уменьшается.



function drink() {

bottle.volume -= 0.2;

};



Теперь давай посмотрим на приближенный к разработке пример - онлайн-кинотеатр.



Основа такого сервиса - это фильм. С названием, длительностью, жанром, статусом просмотрен или нет.



const movie = {

title: ‘Star Wars’,

genre: ‘Science fiction’,

length: 2 // часы,

isViewed: false // еще не смотрел

}




Когда в интерфейсе нужно вывести информацию про фильм, то используем обращение к ключам объекта и выводим свойства.



function render() {

appNode.innerHTML = ‘<h1>’ + movie.title + ‘</h1>’;

}




Массив - это множество типовых сущностей. Например, список фильмов.



Объект - это детальное описание одной сущности. Например, название, жанр и т.д.



Ребят, напишите в комментариях, насколько понятно такое описание и на какую тему стоит разобрать дальше 🙌🏻