Object.freeze: неизменяемые объекты
Одной из моих любимых частей JavaScript всегда была изменчивость объектов. Мне понравилось, что MooTools и аналогичные структуры могут модифицировать собственные прототипы, чтобы улучшить их с функциональность.
Однако есть случаи, когда вы не хотите, чтобы объект изменялся; вы не хотите, чтобы значения для существующих свойств были изменены, добавлены или удалены. Вот где Object.freeze может помочь - с Object.freeze вы можете создавать неизменные объекты, которым вы можете доверять!
const obj = Object.freeze({ x: 1, y: 2 }); // None of these do anything obj.x = 8; // { x: 1, y: 2} delete obj.x; // { x: 1, y: 2} obj.z = 3; // { x: 1, y: 2}
Object.freeze - предложеное и необходимое дополнение к JavaScript. Если у вас есть объекты, целостность которых вы хотите защитить, требуется неизменность.
Object.seal обеспечивает аналогичную функциональность без возможности замораживания значений, поэтому Object.freeze - ваш лучший выбор, если вы хотите заблокировать объект!