Skip to main content

Способи оголосити об'єкт

У JavaScript є кілька способів створити об'єкт, і вибір залежить від того, що тобі потрібно: простий об'єкт, копія, шаблон чи екземпляр класу.

Ось усі основні варіанти:


1. Літерал об'єкта (object literal) - найпростіший і найчастіший спосіб

javascript
const user = { name: 'Tim', age: 25 };

Створює новий об'єкт одразу з потрібними властивостями. Це найпоширеніший спосіб у реальному коді.


2. Через конструктор Object

javascript
const user = new Object(); user.name = 'Tim'; user.age = 25;

Працює, але зазвичай не рекомендується, оскільки літерали ({}) коротші й зрозуміліші.


3. Через Object.create(proto)

javascript
const person = { species: 'human' }; const user = Object.create(person); user.name = 'Tim'; console.log(user.species); // "human" (успадковано від person)

Дозволяє створити об'єкт із визначеним прототипом - часто використовується в просунутих сценаріях (наприклад, при ручній роботі з прототипами).


4. Через функцію-конструктор

javascript
function User(name, age) { this.name = name; this.age = age; } const tim = new User('Tim', 25); console.log(tim.name); // "Tim"

Функції-конструктори (з new) створюють об'єкти визначеного "типу" і автоматично встановлюють this на новий об'єкт.


5. Через клас (class)

javascript
class User { constructor(name, age) { this.name = name; this.age = age; } } const tim = new User('Tim', 25); console.log(tim.name); // "Tim"

Синтаксичний цукор над функцією-конструктором, використовується в сучасному JS для створення екземплярів.


6. Через деструктуризацію та spread

javascript
const base = { role: 'user' }; const user = { ...base, name: 'Tim', age: 25 };

Створює копію наявного об'єкта з додаванням нових властивостей.


7. Через Object.fromEntries()

javascript
const entries = [['name', 'Tim'], ['age', 25]]; const user = Object.fromEntries(entries); console.log(user); // { name: 'Tim', age: 25 }

Корисно, якщо потрібно створити об'єкт із пар ключ-значення (наприклад, після Object.entries() чи Map).


Підсумок

СпосібПрикладКоли використовувати
Літерал {}{ name: 'Tim' }найчастіший спосіб
new Object()new Object()рідко, для сумісності
Object.create(proto)Object.create(person)потрібне керування прототипом
Функція-конструкторnew User()старий, але робочий підхід
classnew User()сучасний, ООП-підхід
Spread / копія{ ...obj }дублювання і розширення об'єктів
Object.fromEntries()Object.fromEntries(pairs)створення з пар ключ-значення

В одній фразі:

У JS об'єкт можна створити різними способами - від простого {} до class, але у 95% випадків достатньо літерала {} чи class для структурованих даних.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.