Изменяемый объект - это объект, состояние которого может быть изменено после его создания. Неизменяемый объект - это объект, состояние которого не может быть изменено после его создания.
В JavaScript:
- Неизменяемые типы:
Number,String,Boolean,null,undefined - Изменяемые типы: все объекты по умолчанию (
Object,Array,Map,Setи т.д.)
Неизменяемость может быть достигнута с помощью:
Object.freeze()- предотвращает добавление новых свойств и изменение существующихObject.seal()- предотвращает добавление новых свойств, но позволяет изменять существующие- Использование библиотек, таких как Immutable.js