Онлайн-курсы по JavaScript
Выбрать другой урок из курса
Обсуждение
Теория урока

Объекты в JavaScript

Объект – это фундамент JavaScript. Объект – это значение, в котором есть другие значения, если попросту сказать. Объект состоит из неограниченного, неупорядоченного количества свойств, которые имеют свое имя и значение. Самый простой способ создать объект, это объединить свойства в фигурные скобки. Далее примеры:

Пример 1
var obj = {
    site: {
        first: 'corpyn.ru',
        second: 'codebra.ru'
    },
    'author theory': 'Ярослав Никитин',
    'today-sdate': '11 Апреля 2015',
};
 
document.write(obj.site.first + "<br>");        // -> corpyn.ru
document.write(obj.site.second + "<br>");       // -> codebra.ru
document.write(obj.site['first'] + "<br>");     // -> corpyn.ru
document.write(obj['site']['first'] + "<br>");  // -> corpyn.ru
document.write(obj.author theory + "<br>");     // -> error
document.write(obj['author theory'] + "<br>");  // -> Ярослав Никитин

Объекты делятся на категории:

  • Объект базового языка – это объект, который определен спецификацией ECMAScript. Например, дата, массив, регулярное выражение
  • Объект среды выполнения – это объект, который определен средой выполнения (например, браузер)
  • Пользовательский объект – это объект, который создан во время выполнения скрипта

Возможно, объекты могут вам напомнить массивы. Теперь разберем то, что написали выше. Вначале создаем сам объект:

Пример 2
var obj = { ... }

После начинаем описывать свойства – имя_свойства: значение. Правила для имен свойств такие же, как и для переменных. НО! Можно указывать любое имя, при условии, что оно будет помещено в одинарные или двойные кавычки. Да даже такое: 217i&*2d

Пример 3
var obj = {
    max: 'Любое значение'
}

Если свойств несколько, то после каждого должна быть запятая (последнюю запятую ставить не обязательно). Далее пример с ошибкой:

Пример 4
var obj = {
    max: 'Любое значение'
    min: 'Любое значение'
}

Чтобы исправить ошибку, нужно добавить запятую после первого свойства:

Пример 5
var obj = {
    max: 'Любое значение',
    min: 'Любое значение'
}
 
// Так тоже можно
var obj = {
    max: 'Любое значение',
    min: 'Любое значение',
}

Вложений можно делать сколько угодно. Напишем простого робота:

Пример 6
var robot = {
    say: {
        ask: {
            yes: 'Yes!',
            no: 'No!',
        },
        go: {
            toLeft: 'Влево',
            toRight: 'Вправо'
        },
    },
};
 
document.write(robot.say.ask.yes);      // -> Yes!
document.write(robot.say.ask.no);       // -> No!
document.write(robot.say.ask);          // -> [object Object]
document.write(robot.say.go.yes);       // -> undefined (в свойстве go, нет свойства yes)
document.write(robot.say.go.toRight);   // -> Вправо

Вот мы научились создавать объекты при помощи фигурных скобок, но это не единственный способ. Можно написать оператор new, за которым следует имя функции. Эта функция будет конструктором и нужна для объявления объекта. В JavaScript много таких конструкторов и позже вы научитесь создавать свои конструкторы, но пока примеры вам известных:

Пример 7
var obj = new Object(); // == {}
var arr = new Array();  // == []
<
×
>
Не публикуйте свой код прямо в комментариях. Во-первых, он плохо отображается. Во-вторых, он может содержать для кого-то «спойлеры», т.е. ответы на практику. Воспользуйтесь специальными сервисами: cssdeck.com или jsfiddle.net.
Комментарии, содержащие код (пару строк не считается), будут безжалостно удаляться.