Skip to content

输出什么?

Posted on:2024年8月3日 at 21:05
const box = { x: 10, y: 20 };

Object.freeze(box);

const shape = box;
shape.x = 100;
console.log(shape);

Object.freeze使得无法添加、删除或修改对象的属性(除非属性的值是另一个对象)。 当我们创建变量shape并将其设置为等于冻结对象box时,shape指向的也是冻结对象。你可以使用Object.isFrozen检查一个对象是否被冻结,上述情况,Object.isFrozen(shape)将返回true。 由于shape被冻结,并且x的值不是对象,所以我们不能修改属性xx仍然等于10{x:10,y:20}被打印。 注意,上述例子我们对属性x进行修改,可能会导致抛出TypeError异常(最常见但不仅限于严格模式下时)。

原文转自:https://fe.ecool.fun/topic/58313b6b-5983-4414-8b85-81057f1c7d9a