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

Как запретить возможность изменения полей в объекте

В JavaScript можно использовать несколько способов для запрета изменения полей объекта:

  1. Object.freeze() - делает объект полностью неизменяемым (нельзя добавлять, удалять или изменять свойства):
js
const obj = { name: 'John' };
Object.freeze(obj);
obj.name = 'Mike'; // Не сработает в strict mode
  1. Object.seal() - позволяет изменять существующие свойства, но запрещает добавлять/удалять:
js
const obj = { name: 'John' };
Object.seal(obj);
obj.name = 'Mike'; // Работает
obj.age = 30; // Не сработает
  1. Для отдельных свойств можно использовать Object.defineProperty:
js
const obj = {};
Object.defineProperty(obj, 'name', {
  value: 'John',
  writable: false,
  configurable: false
});

Важно: эти методы работают только на первом уровне вложенности. Для глубокой заморозки нужно рекурсивно обрабатывать все вложенные объекты.

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

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

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

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