Объяснение
@easypeasycodeObject.freeze
делает невозможным добавление, удаление или изменение свойств объекта (если только значение свойства не является другим объектом).
Когда мы создаем переменную shape и устанавливаем ее равной замороженному объекту box
, shape также ссылается на замороженный объект. Вы можете проверить, заморожен ли объект, используя Object.isFrozen
. В этом случае Object.isFrozen(shape)
возвращает true
, поскольку переменная shape
имеет ссылку на замороженный объект.
Поскольку shape
заморожен, и поскольку значение x
не является объектом, мы не можем изменить свойство x
. x
по-прежнему равно 10
, и {x: 10, y: 20}
регистрируется.
Код:
const box = { x: 10, y: 20 }; Object.freeze(box); const shape = box; shape.x = 100; console.log(shape);