Object.freeze()
Заморозка. МетодObject.freeze(..)
создает замороженный объект, что означает, что он принимает существующий объект и по сути применяет к немуObject.seal(..)
, но также помечает все свойства «доступа к данным» какwritable:false
, так, что их значения не могут быть изменены.
Этот подход дает наивысший уровень иммутабельности, который вы можете получить для самого объекта, поскольку он предотвращает любые изменения в объекте или его непосредственных свойствах (хотя, как сказано выше, содержимое любых других привязанных объектов не затрагивается).
Вы можете «глубоко заморозить» объект, применивObject.freeze(..)
к объекту и рекурсивно перебрать все объекты, на которые он ссылается (которые еще не были затронуты) применив к нимObject.freeze(..)
. Однако, будьте осторожны, поскольку это может затронуть другие (общие) объекты, которые вы не планировали менять.
Object.isFrozen()
Объект является неизменяемым?
Синтаксис
Object.isFrozen(o)
Возвращаемое значение: true
, если объект o
является зафиксированным и неизменяемым, и false
– если нет.