Метод 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 ()