Базовая структура данных объекта 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.