const的声明的对象
const obj = {
name:"张三",
age:20,
hobby:{
one:"篮球"
}
}
Object.freeze(obj);
obj.name = "李四"
obj.hobby.one = "足球";
console.log(obj);
用Object.freeze()对const 声明的对象进行冻结
如果是const 声明的多层嵌套对象,则无法进行深层次的冻结
则需要封装深层次冻结方法,对深层次对象进行冻结。
// 深冻结;
function deepFreeze(obj){
Object.freeze(obj);
for(let key in obj){
if(obj.hasOwnProperty(key)){
// 判断是否是对象;
if(typeof obj[key] === 'object'){
deepFreeze(obj[key]);
}
}
}
}