Object.freeze()
方法可以冻结一个对象。一个被冻结的对象再也不能被修改;冻结了一个对象则不能向这个对象添加新的属性,不能删除已有属性,不能修改该对象已有属性的可枚举性、可配置性、可写性,以及不能修改已有属性的值。此外,冻结一个对象后该对象的原型也不能被修改。freeze()
返回和传入的参数相同的对象。
// 数组中是对象
const arr=[{
aaa: 42
}]
Object.freeze(arr);
arr[0]["aaa"]=222
arr.push(123) // // Uncaught TypeError: Cannot add property 1, object is not extensible
at Array.push
console.log(arr);
// 普通对象
const obj={
bbb: 000
}
Object.freeze(obj);
obj.bbb=111;
console.log(obj) // {bbb: 000}
// 对象中的值为对象
const obj2={
ccc: {aaa:1}
}
Object.freeze(obj2);
obj2.ccc.aaa=2;
console.log(obj2) // {ccc: {aaa:2}}
**Object.isFrozen()
**方法判断一个对象是否被冻结。
参考链接:https://www.cnblogs.com/BlueCc/p/14306778.html
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/freeze
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/isFrozen