[toc]
Object.preventExtensions(),就不能给对象添加新属性和方法
var person = { name: 'tmchw'}
console.log(Object.isExtensible(person)) // true
Object.preventExtensions(person)
console.log(Object.isExtensible(person)) // false
person.age = 29
console.log(person.age) // undefined
ES5 为对象定义的第二个保护级别是密封对象(sealed object),要密封对象,使用方法Object.seal()
var person = { name: 'tmchw'}
Object.seal(person)
console.log(Object.isSealed(person)) // true
person.age = 29
console.log(person.age) // undefined
delete person.name
console.log(person.name) // 'tmchw'
最严格的防篡改级别是冻结对象(frozen object),ES5 定义 Object.freeze() 来冻结对象