Встречается на собеседованиях • сегодня

Можно ли сделать объект в JavaScript с неизменяемыми свойствами

Да, можно с помощью Object.freeze(), Object.defineProperty() или Object.defineProperties().

1. Object.freeze() – делает объект полностью неизменяемым:

javascript
const obj = { name: "Alice" };
Object.freeze(obj);
obj.name = "Bob"; // Не сработает (в strict mode будет ошибка)

2. Object.defineProperty() – позволяет задать конкретному свойству writable: false:

javascript
const obj = {};
Object.defineProperty(obj, 'name', {
  value: "Alice",
  writable: false
});
obj.name = "Bob"; // Игнорируется (в strict mode – ошибка)

3. const ≠ неизменяемость
const запрещает переприсваивание переменной, но не блокирует изменение свойств объекта.

Для глубокой неизменяемости можно использовать библиотеки (например, Immutable.js) или рекурсивно зафризить вложенные объекты.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы