Встречается на собеседованиях • сегодня
Какие знаешь способы запретить изменение свойства объекта
В JavaScript есть несколько способов запретить изменение свойства объекта:
- Object.defineProperty() - позволяет определить свойство с флагами
writable: falseиconfigurable: false
js
const obj = {};
Object.defineProperty(obj, 'prop', {
value: 42,
writable: false,
configurable: false
});- Object.freeze() - замораживает весь объект, делая все свойства неизменяемыми
js
const obj = { prop: 42 };
Object.freeze(obj);
obj.prop = 100; // Не сработает в strict mode- Object.seal() - предотвращает добавление/удаление свойств, но позволяет изменять существующие
js
const obj = { prop: 42 };
Object.seal(obj);
obj.newProp = 100; // Не сработает- Использование прокси - можно перехватывать и блокировать операции изменения
js
const obj = { prop: 42 };
const proxy = new Proxy(obj, {
set() { return false; }
});Для полной защиты лучше комбинировать методы, например Object.freeze() после Object.defineProperty().

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы