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

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