Объект и его внутреннее представление — JavaScript
Что такое объект JavaScript
Объекты в JavaScript состоят из пар ключ/значение любого типа и похожи на словари в Python, HashMaps в Java и т. д. Давайте посмотрим!
Создание объектов JavaScript
Используйте { } для создания пустого объекта.
const person = {};
Вы также можете определить объект с уже включенными парами ключ/значение, используя синтаксис литерала объекта. В данном случае я создаю объект с четырьмя свойствами: first, last, age и email.
const person = {
first: "Abhijeet",
last: "Pawar",
age: 23,
email: "[email protected]"
}
Работа со свойствами объекта
После создания объекта со свойствами вы можете получить доступ к каждому свойству с помощью записи через точку. После вашего объекта вы ставите точку (.), за которой следует имя свойства, которое вы ищете.
console.log(person.first) //Abhijeet
console.log(person.last) //Pawar
console.log(person.age) //23
В качестве альтернативы вы можете использовать следующий синтаксис, используя скобки и имя свойства, которое вы ищете внутри скобок.
console.log(person["first"]) //Abhijeet
console.log(person["last"]) //Pawar
console.log(person["age"]) //23
Вы также можете использовать точечную запись или именованную запись для обновления свойств.
person.name = abhi;
person.age = 24;
console.log(person.name) //abhi
console.log(person.age) //24
Чтобы удалить свойство объекта, вы можете вызвать команду delete, а затем указать свойство, которое хотите удалить. После удаления свойства оно будет возвращать неопределенное значение при попытке доступа к нему.
delete person.age
console.log(person.age); //undefined
Сравнение объектов
В JavaScript объекты являются ссылочным типом. Два разных объекта никогда не бывают равными, даже если они обладают одинаковыми свойствами. Только сравнение одной и той же ссылки на объект с самой собой дает истину.
// Two variables, two distinct objects with the same properties let p1 = { name:"alex" }; let p2 = { name:"john" };
//Here p1 and p2 are pointing to two different objects p1==p2; //false p1===p2; //false
//Two variables, single object let p1 = { name:"sam" }; let p2 = p1;
//Here p1 and p2 are pointing to same object p1==p2; //true p1===p2; //true