const person = {
name: '啦啦德玛西亚',
_job: '无业'
}
Object.defineProperty(person, 'job', {
get: function() {
return this._job
},
set: function(newValue) {
this._job = newValue
}
})
console.log(Object.isFrozen(person))// false
//使用Object.freeze()将对象修改为冻结对象,
//冻结对象即无法扩展,又是密封的,而且对象的数据属性的[[Writable]]特性会被设置为false
Object.freeze(person)
//使用Object.isFrozen()检测对象是否是冻结对象
//因为冻结对象既是密封又是不可扩展的,
//所以用Object.isExtensible()为false,Object.isSealed()为true
console.log(Object.isFrozen(person))// true
console.log(Object.isExtensible(person))// false
console.log(Object.isSealed(person))// true
person.age = 20
console.log(person.age)// undefined
person.name = '德玛西亚万岁'
console.log(person.name)// 啦啦德玛西亚
delete person.name
console.log(person.name)// 啦啦德玛西亚
console.log(person.job) // 无业
person.job = '前端打字员'
console.log(person.job) // 无业