Object.freeze()

Object.freeze() 方法可以冻结一个对象,冻结指的是不能向这个对象添加新的属性,不能修改其已有属性的值,不能删除已有属性,以及不能修改该对象已有属性的可枚举性、可配置性、可写性。也就是说,这个对象永远是不可变的。该方法返回被冻结的对象。

语法

Object.freeze(obj)

参数

  • obj 要被冻结的对象。

返回值

被冻结的对象。(这个方法返回传递的对象,而不是创建一个被冻结的副本。)

实际应用

在非严格模式下,对被冻结的对象进行操作会静默失败,在严格模式下,会抛出一个 TypeErrors。

const object1 = {
  property1: 42
};
object1.property2 = 10;
const object2 = Object.freeze(object1);
// 在严格模式下抛出错误
object1.property1 = 33;
object1.property2 = 33;
object2.property1 = 33;
object2.property2 = 33;
delete object1.property1;
console.log(object1.property1); // 42
console.log(object1.property2); // 10
console.log(object2.property1); // 42
console.log(object2.property2); // 10

MIT Licensed | Copyright © 2018-present 滇ICP备16006294号

Design by Quanzaiyu | Power by VuePress