下面的 JavaScript 代码输出结果是什么?

const box = { x: 10, y: 20 };
Object.freeze(box);
const shape = box;
shape.x = 100;
console.log(shape)
1417 次浏览
  • A、{x:100,y:20}
  • B、{x:10,y:20}
  • C、{x:100}
  • D、ReferenceError
Object.freeze使得⽆法添加、删除或修改对象的属性(除⾮属性的值是另⼀个对象)。 当我们创建变量 shape并将其设置为等于冻结对象 box时, shape指向的也是冻结对象。你 可以使⽤ Object.isFrozen检查⼀个对象是否被冻结,上述情况,Object.isFrozen(shape) 将返回 true。 由于 shape被冻结,并且 x的值不是对象,所以我们不能修改属性 x。x仍然等于 10, {x:10,y:20}被打印。 注意,上述例⼦我们对属性 x进⾏修改,可能会导致抛出TypeError异常(最常⻅但不仅限于严 格模式下时)。
挑战成功
1年前
挑战失败
1年前
挑战成功
1年前
挑战成功
1年前
挑战成功
1年前
挑战成功
1年前
挑战失败
1年前
挑战成功
2年前
挑战失败
2年前
挑战失败
2年前

微信公众号

有课学公众号
  • 微信公众号: geekdaxue