Базовая структура данных объекта JS выглядит следующим образом:
const pet = { }; // it is common to use *const* to create objects or arrays.
На этом уровне он подобен объекту Array:
const breeds = [ ]; // a filled array looks like this const breeds = ["retrievers", "terriers", "hounds", "shepherds"];
Не забудьте точку с запятой.
Массивы пронумерованы, и мы можем использовать индекс (начиная с 0) для доступа к каждому из элементов. Объекты, с другой стороны, не нумеруются, у них есть свойства, поэтому простой объект выглядит так:
const pet = { name: "May", species: "dog", breed: "pointer" }; // if the property had a space in it, then it would have double quotes // "first name" instead of name
Свойства имеют значения свойств, которые являются связанными данными; они могут быть строками, числами, массивами или даже объектами.
Свойства не всегда должны быть строкой, они также могут быть числами.
R — Чтение (доступ) значений свойств:
Продолжим использовать этот объект:
const pet = { name: "May", species: "dog", breed: "pointer" }; // if the property had a space in it, then it would have double quotes // "first name" instead of name
Есть два способа получить доступ к имени моего питомца:
let name = pet.name; // if a property name has a space in it, this dot notation will not work // also, doesn't work with variables that store properties // for example: // pet."first name" - won't work. // OR let name = pet[name]; // for example: // pet["first name"] - does work. // this works while using variables for properties.
Зачем кому-то использовать переменные в качестве свойств? Потому что иногда мы пишем методы установки и получения для чтения и записи данных в объекты. С универсальными геттерами и сеттерами мы можем использовать один метод для чтения или записи любого свойства.
ПРИМЕЧАНИЕ. С переменными мы всегда используем скобки [ ], а не " ".
U — Запись (обновление) значений свойств
В простом объекте запись в свойство выполняется так же просто, как:
const pet = { name: "May", species: "dog", breed: "pointer" }; pet[name] = "June";
C — Добавление нового свойства
Нам не нужно ограничиваться свойствами, которые мы создаем в начале. Мы можем добавить к нашему объекту совершенно новые свойства.
const pet = { name: "May", species: "dog", breed: "pointer" }; // with bracket notation pet["color"] = "Black";
D — Удаление свойства
Мы также можем полностью удалить/удалить свойство объекта.
const pet = { name: "May", species: "dog", breed: "pointer" }; // delete with bracket notation delete pet["breed"];
Q — Запрос существования свойства
Мы также можем полностью удалить/удалить свойство объекта.
const pet = { name: "May", species: "dog", breed: "pointer" }; // note the round brackets: let hasProp = pet.hasOwnProperty("species");
Это был простой объект JS — следующая остановка: сложный объект JS.