JavaScript freeze() 方法有什么作用?

avaScript中的Object.freeze()方法用于冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象就意味着:

  1. 不能向这个对象添加新的属性。
  2. 不能修改其已有属性的值。
  3. 不能删除已有属性。
  4. 不能修改其已有属性的可枚举性、可配置性、可写性。
  5. 也不能修改已有属性的值。

换句话说,一个被冻结的对象是常量化的。这个方法返回被冻结的对象。

例如:

let obj = {
  prop: 42
};

Object.freeze(obj);

obj.prop = 33;
// 不会报错,但修改不会成功
console.log(obj.prop); // 输出 42

在这个例子中,我们创建了一个对象obj,然后我们使用Object.freeze()方法冻结它。然后我们尝试修改objprop属性,但是因为obj已经被冻结,所以修改不会成功,obj.prop的值仍然是42。

要注意的是Object.freeze()是浅冻结,也就是说,如果一个对象的属性值仍然是对象,那么这个对象属性值的内容还是可以修改的。如果你需要深度冻结对象,你需要自己编写代码来递归冻结每个对象属性值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值