Метод JavaScript Object.freeze () заморожує об'єкт.
Заморожений об'єкт більше не можна змінити. Заморожування об'єкта запобігає:
- Нові властивості від додавання до об’єкта.
- Існуючі властивості, які слід видалити з об’єкта.
- Зміна перелічуваності, конфігурації або запису до існуючих властивостей.
- Зміна значень властивостей існуючого об’єкта та прототипу.
Синтаксис freeze()
методу:
Object.freeze(obj)
freeze()
Метод, який є статичний метод, викликаються з допомогою Object
імені класу.
freeze () Параметри
freeze()
Метод приймає в:
- obj - об'єкт, який слід заморозити.
Повернене значення із заморожування ()
- Об'єкт, який передано функції.
Примітки :
- Будь-які спроби додавати або видаляти із властивостей набору заморожених об'єктів не вдаватимуться ні мовчки, ні кидати
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 ))
Вихідні дані
true true бар undefined
Примітка : Object.freeze(obj)
застосовується лише до безпосередніх властивостей obj
. Якщо значення цих властивостей є самими об'єктами, ці об'єкти не заморожуються і можуть бути об'єктом операцій додавання, видалення або перепризначення властивостей.
Рекомендуємо прочитати: Ущільнення об’єкта JavaScript ()