Объе́кт в программировании — сущность в цифровом пространстве, обладающая состоянием и поведением, имеющая поля и методы.
Примитивные типы
- string
- number
- boolean
- null
- undefined
- symbol
- bigint
Сложные типы
- массивы
- обеъекты
За исключением прототипно-ориентированных языков вроде Lua и JavaScript, где понятие «класс» не используется вовсе,
в большинстве объектно-ориентированных языков программирования (таких как Java, C++ или C#),
объекты являются экземплярами некоторого заранее описанного класса.
Создание объекта
let obj = {};
let obj = {1: 'a', 2: 'b', 3: 'c'};
console.log(obj[1]); // выведет 'a'
let user = new Object(); // синтаксис "конструктор объекта"
let user = {}; // синтаксис "литерал объекта"
let user = { // объект
name: "John", // под ключом "name" хранится значение "John"
age: 30 // под ключом "age" хранится значение 30
};
user.isAdmin = true;
delete user.isAdmin;
Вывод всего объекта
let obj = {1: 'a', 2: 'b', 3: 'c'};
console.log(obj); // выведет объект
Строковые ключи объектов
let obj = {'a': 1, 'b': 2, 'c': 3};
let obj = {a: 1, b: 2, c: 3};
Свойства объектов
let obj = {a: 1, b: 2, c: 3};
console.log(obj.a); // выведет 1
Ограничения на ключи объектов
let obj = {'1key': 'a', 'key-2': 'b', key3: 'c'};
console.log(obj['1key']);
console.log(obj['key-2']);
console.log(obj['key3']);
console.log(obj.key3);
Изменение элементов объектов
let obj = {a: 1, b: 2, c: 3};
obj['a'] = '!';
obj.b = '!';
Добавление элементов в объекты
let obj = {};
obj['a'] = 1;
obj['b'] = 2;
obj['c'] = 3;
obj.e = 4;
obj.f = 5;
obj.g = 6;
console.log(obj); // выведет {a: 1, b: 2, c: 3, e: 4, f: 5, g: 6}
Неупорядоченность объектов
let obj = {1: 'a', 2: 'b', 3: 'c'};
console.log(obj[1]); // выведет 'a'
console.log(obj[2]); // выведет 'b'
console.log(obj[3]); // выведет 'c'
let obj = {3: 'c', 1: 'a', 2: 'b'};
console.log(obj[1]); // выведет 'a'
console.log(obj[2]); // выведет 'b'
console.log(obj[3]); // выведет 'c'
let obj = {7: 'a', 50: 'b', 23: 'c'};
Массив ключей объекта
let obj = {a: 1, b: 2, c: 3};
let keys = Object.keys(obj);
console.log(keys);
let obj = {a: 1, b: 2, c: 3};
console.log(obj.length); // выведет undefined
console.log(Object.keys(obj).length); // выведет 3
Ключи объектов из переменных
let obj = {a: 1, b: 2, c: 3};
let key = 'a';
console.log(obj[key]); // выведет 1
Обращение к элементы по ключу
console.log(obj['key']);
console.log(obj[key]);
Ошибка обращения к свойству объекта
let obj = {a: 1, b: 2, c: 3};
let key = 'a';
console.log(obj.key); // undefined
console.log(obj[key]); // 1
Вычисляемые свойства (ключи)
let obj = {
a: 1,
b: 2,
c: 3
};
let key = 'a';
let obj = {
[key]: 1,
b: 2,
c: 3
};
let obj = {
[key + '1']: 1,
[key + '2']: 2,
[key + '3']: 3
};
Оператор in
let obj = {a: 1, b: 2, c: 3};
console.log('b' in obj); // выведет true
console.log('x' in obj); // выведет false
Оператор delete
let obj = {a: 1, b: 2, c: 3};
delete obj.b;
console.log(obj); // выведет {a: 1, c: 3}
Передача объектов по ссылке
let obj1 = {a: 1, b: 2, c: 3};
let obj2 = obj1;
obj2.a = '!';
console.log(obj1); // {a: '!', b: 2, c: 3}
Константы с массивами или объектами
const obj = {a: 1, b: 2, c: 3};
obj = 123; // ошибка
obj = {x: 1, y: 2, z: 3}; // ошибка
obj.a = '+'; // работает!