Ничто не может быть добавлено или удалено из набора свойств замороженного
объект. Любая попытка сделать это потерпит неудачу, либо молча, либо
исключение TypeError (чаще всего, но не исключительно, когда в
строгий режим).
https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Object/freeze
Вы можете думать об этом так:
if( typeof ChuckNorris === 'undefined' ) {
ChuckNorris = Object.create( [Infinity], {
canCountTo: {
value: Infinity * 2,
writable: true,
configurable: true
}
});
Object.freeze( ChuckNorris ); // nothing can harm Chuck anymore !
}
console.log( ChuckNorris.canCountTo ); // Infinity
delete ChuckNorris.canCountTo;
console.log( ChuckNorris.canCountTo ); // Infinity
Таким образом, freeze
установит флаги writable
и configurable
объектов после создания.