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

Какие знаешь способы запретить изменение свойства объекта

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

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

Для полной защиты лучше комбинировать методы, например Object.freeze() после Object.defineProperty().

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

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

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

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