// 对象的只读封装
Object.defineProperty(Object, 'freezeProperty', {
value: function(obj){
for(let val in obj){
// 只取自身属性,防止拿到原型中的属性
if(obj.hasOwnProperty(val)) {
// 为防止对象类型中的属性被修改,需要再次遍历冻结
if(typeof obj[val] === 'object'){
Object.freezeProperty(obj[val]);
};
// 将属性设为只读
Object.defineProperty(obj, val, {
writable: false
});
}
}
// 冻结对象,使其不能增加属性
Object.seal(obj);
}
});