Объекты


JavaScript - это функциональный язык, и для объектно-ориентированного программирования он использует как объекты, так и функции, но объекты обычно используются как структура данных, подобная словарю в Python или карте в Java. В этом руководстве мы узнаем, как использовать объекты в качестве структуры данных. В расширенных руководствах рассказывается больше об объектно-ориентированном JavaScript.

Для инициализации объекта используйте фигурные скобки:

var emptyObject = {};
var personObject = {
    firstName : "John",
    lastName : "Smith"
}

Обращение к члену

К членам объектов можно обращаться с помощью оператора скобок , что очень похоже на массивы, но, как и во многих других объектно-ориентированных языках, можно также использовать оператор точки. Они очень похожи, за исключением того факта, что квадратные скобки возвращают член с помощью строки, в отличие от оператора точки, который требует, чтобы член был простым словом (слово не должно содержать пробелов, начинаться с числа или использовать недопустимые символы).[].

Например, мы можем продолжить заполнение объекта человека более подробной информацией:

var personObject = {
    firstName : "John",
    lastName : "Smith"
}
personObject.age = 23;
personObject["salary"] = 14000;

Итерация

Итерация по элементам словаря - нетривиальная задача, поскольку итерация по объектам также может давать элементы, которые на самом деле не принадлежат объекту. Следовательно, мы должны использовать hasOwnPropertyметод, чтобы проверить, действительно ли член принадлежит объекту.

for (var member in personObject)
{
    if (personObject.hasOwnProperty(member))
    {
        console.log("the member " + member + " of personObject is " + personObject[member])
    }
}

Это в конечном итоге распечатает

the member firstName of personObject is John
the member lastName of personObject is Smith
the member age of personObject is 23
the member salary of personObject is 14000

Обратите внимание, что методы объектов в JavaScript имеют фиксированный порядок, как и массивы.

Упражнение

Вы должны определить вызываемый объект personсо следующими членами:

  1. Член firstNameчеловека - "Джек".
  2. Член lastNameчеловека - "Смит".
  3. Члену ageчеловека 19 лет
  4. Член employedчеловекаtrue