Object.freeze()
作用:冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这个对象添加新的属性,不能删除已有属性,不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改已有属性的值。此外,冻结一个对象后该对象的原型也不能被修改。freeze() 返回和传入的参数相同的对象。
描述:被冻结对象自身的所有属性都不可能以任何方式被修改。
语法
Object.freeze(obj)
- 参数 obj:要被冻结的对象。
- 返回值:被冻结的对象。
实例
//定义一个对象
let obj={name:'lisa'};
//冻结对象
Object.freeze(obj);
obj.name="haha";//对象被冻结,无法修改
console.log(obj);//lisa
上述例子我们定义了一个对象obj,然后使用Object.freeze()方法把它冻结,冻结后,他不能被修改或删除。否则会报错。
Object.isFrozen()
作用:判断一个对象是否被冻结。
语法
Object.isFrozen(obj)
- 参数:obj被检测的对象。
- 返回值:表示给定对象是否被冻结的Boolean。
实例
let a={name:'lisa'};
let b={name:'coco'};
Object.freeze(a);
console.log(Object.isFrozen(a));//true
console.log(Object.isFrozen(b));//false