Как предотвратить модификацию объекта в JavaScript?

Существует множество способов блокировки объекта в соответствии с вашими потребностями.

  1. Object.freeze()
  2. Object.seal()
  3. Object.preventExtensions()

Object.freeze()

Чтобы предотвратить модификацию объектов JavaScript, одним из методов является использование Object.freeze(). Замораживание объекта не позволяет добавлять новые объекты к объекту и не позволяет удалить или изменить существующие свойства. Любая попытка сделать это потерпит неудачу, либо тихо, либо выбросив исключение TypeError (чаще всего, но не исключительно, в строгом режиме).

Синтаксис

Пример

Выход

Замораживание объекта может быть полезно для представления логически неизменяемой структуры данных, особенно если изменение свойств объекта может привести к плохому поведению в другом месте вашего приложения. Object.freeze (...) неглубоко, это означает, что значения объекта в замороженном объекте по-прежнему изменяемы.

Object.seal()

Object.seal - это надмножество Object.preventExtensions в функциональности, поскольку в то же время он предотвращает привязку произвольных свойств к объектам, а также предотвращает изменение атрибутов свойств, которые уже существуют на объекте. Кроме того, он запрещает удаление свойств.

Синтаксис

Пример

Выход

Object.preventExtensions()

Object.preventExtensions() устанавливает расширяемый атрибут o в false, чтобы новые свойства не добавлялись к нему. Это постоянное изменение: после того, как объект был сделан не расширяемым, он не может быть снова расширяемым.

Пример

Выход

Источник: http://net-informations.com/js/iq/prev.htm

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (Пока оценок нет)
Adblock
detector