JavaScript Object.freeze ()

Метод JavaScript Object.freeze () замораживает объект.

Замороженный объект больше нельзя изменить. Замораживание объекта предотвращает:

  • Новые свойства от добавления к объекту.
  • Существующие свойства должны быть удалены из объекта.
  • Изменение перечислимости, настраиваемости или возможности записи существующих свойств.
  • Изменение значений существующих свойств объекта и прототипа.

Синтаксис freeze()метода:

 Object.freeze(obj)

Этот freeze()статический метод вызывается по имени Objectкласса.

freeze () Параметры

freeze()Метод принимает в:

  • obj - объект для замораживания.

Возвращаемое значение из freeze ()

  • Объект, переданный функции.

Примечания :

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

Пример: использование freeze ()

 let obj = ( prop: function () (), foo: "bar", ); let o = Object.freeze(obj); console.log(o == obj); // True -> Returns the same object console.log(Object.isFrozen(obj)); // true // changes will fail silently obj.foo = "bar1"; console.log(obj.foo); // bar // does not add silently obj.new_foo = "bar"; console.log(obj.new_foo); // undefined // Following will also throw error // Object.setPrototypeOf(obj, ( x: 20 ))

Вывод

 истинный истинный бар undefined

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

Рекомендуемая литература: Печать объекта JavaScript ()

Интересные статьи...