4. Объекты
81
var findingNemo = movies["В поисках Немо"];
findingNemo.duration;
100
findingNemo.format;
"
DVD
"
Мы сохранили сведения о фильме «В поисках Немо» в переменной
fi ndingNemo. Теперь достаточно обратиться к свойствам этого объекта
(таким как
duration и format), чтобы получить интересующую нас
информацию.
Кроме того, в коллекцию легко добавить новые фильмы:
var cars = {
releaseDate: 2006,
duration: 117,
actors: ["Оуэн Уилсон", "Бонни Хант", "Пол Ньюман"],
format: "Blu-ray"
};
movies["Тачки"] = cars;
Здесь мы создали новый объект со сведениями о мультфильме
«Тачки» (Cars), а затем добавили его в
объект
movies с ключом "Тачки".
Коллекция растет, и вам может понадобиться простой способ
просмотреть названия всех своих фильмов. Для этого подойдет
Object.keys:
Object.keys(movies);
["
В поисках Немо
", "
Звездные войны: Эпизод VI — Возвращение
джедая
", "
Гарри Поттер и Кубок огня
", "
Тачки
"]
Что мы узнали
Теперь мы знаем, как устроены объекты JavaScript. Они во многом
похожи на массивы и тоже нужны для хранения множества элементов
данных в одном месте. Но есть важное отличие — для доступа к эле-
ментам объекта используются строки, тогда как элементы массива
расположены по числовым индексам. Поэтому массивы отсортированы
по порядку, а объекты нет.
В дальнейших главах, когда мы больше узнаем о
возможностях
JavaScript, мы научимся использовать объекты для многих других задач.
В следующей главе речь пойдет об HTML — языке разметки веб-страниц.
УПРА ЖНЕНИЯ
Попрактикуйтесь в использовании объектов, выполнив эти
упражнения.
#1. Подсчет очков
Представьте, что вы играете в
какую-нибудь игру со своими друзь-
ями и вам нужно вести счет. Создайте для этого объект и назовите
его
scores. Пусть ключами будут имена ваших друзей, а значе-
ниями — набранные ими очки (0 или больше). Счет игроков надо
будет увеличивать по мере того, как они зарабатывают новые
очки. Как вы будете менять счет игрока, хранящийся в объекте
scores?
#2. Вглубь объектов и массивов
Пускай у вас есть такой объект:
var myCrazyObject = {
"name": "Нелепый объект",
"some array": [7, 9, { purpose: "путаница", number: 123 }, 3.3],
"random animal": "Банановая акула"
};
Как одной строкой JavaScript-кода извлечь из этого объекта
число 123? Проверьте свое решение, запустив его в консоли.
My crazy
object
—
мой нелепый
объект
Some array
—
какой-то
массив
Purpose
— цель
Random
animal
—
случайное
животное