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 - ваш лучший выбор, если вы хотите заблокировать объект!