Синтаксис
Объекты это сложный тип данных в JavaScript, который может хранить коллекции разных значений и иметь большую вложенность других типов данных.
Объект представляет собой данные в виде «ключ: значение». Ключом является название, а значением может быть свойство (переменная) или метод (функция).
let person = {
name: 'alex', // свойство
myName() { // метод
console.log('hello');
}
}
Обращение к ключам осуществляется через точку.
person.name // alex
person.myName() // hello
Перебор объекта. Цикл for … in
Перебрать объект как массив не получится. Но если необходимо пройтись по всем ключам объекта в цикле, можно использовать цикл for … in.
Следующий пример выведет в консоль имена всех свойств объекта person.
let person = {
name: 'alex',
age: 18,
myName() {
console.log('hello');
}
}
for (key in person) {
console.log(key);
}
// name
// age
// myName
Функция конструктор
Конструктор используется для удобного создания множества однотипных объектов, а так же выглядит более читабельно.
function Person(name, age) {
this.name = name;
this.age = age;
}
let alex = new Person('alex', 24);
let ivan = new Person('ivan', 20);
console.log(alex); // Object { name: "alex", age: 24 }
console.log(ivan); // Object { name: "ivan", age: 20 }
Наследование объектов
Свойства одного объекта можно наследовать через прототипы от другого. Делается это через Object.create(), а в качестве параметра передается наследуемый объект.
let person = {
name: 'alex',
myName() {
console.log(this.name);
}
}
let profile = Object.create(person);
console.log(profile.name); // alex
Мы создали новый объект profile и при создании наследовали свойства объекта person. Теперь можно обратиться к свойствам объекта person, но уже через profile.