Использование const
для создания неизменяемого объекта
const
const myObject = {
firstProp: true,
secondProp: 'Yes'
};
myObject = false; // нельзя переопределить объект
delete myObject.firstProp; // можно удалить свойство объекта
myObject.secondProp = 'No'; // можно изменить свойство объекта
myObject.thirdProp = 'Yes'; // можно добавить новое свойство объекта
const
myObject
Ограничение изменений с помощью Object.preventExtensions()
Object.preventExtensions()
const myObject = {
firstProp: true,
secondProp: 'Yes'
};
Object.preventExtensions(myObject);
myObject.isExtensible(); // false, объект больше не расширяемый
delete myObject.firstProp; // можно удалить свойство объекта
myObject.secondProp = 'No'; // можно изменить свойство объекта
myObject.thirdProp = 'Yes'; // нельзя добавить новое свойство
Object.preventExtensions()
Запечатывание объекта с помощью Object.seal()
Object.seal()
const myObject = {
firstProp: true,
secondProp: 'Yes'
};
Object.seal(myObject);
myObject.isSealed(); // true, объект запечатан
delete myObject.firstProp; // нельзя удалить свойство объекта
myObject.secondProp = 'No'; // можно изменить свойство объекта
myObject.thirdProp = 'Yes'; // нельзя добавить новое свойство
Object.seal()
Полная заморозка объекта с помощью Object.freeze()
Object.freeze()
const myObject = {
firstProp: true,
secondProp: 'Yes'
};
Object.freeze(myObject);
myObject.isFrozen(); // true, объект заморожен
delete myObject.firstProp; // нельзя удалить свойство объекта
myObject.secondProp = 'No'; // нельзя изменить свойство объекта
myObject.thirdProp = 'Yes'; // нельзя добавить новое свойство
Object.freeze()
Заключение
const
Object.preventExtensions()
Object.seal()
Object.freeze()