1、不可扩展对象 Object.preventExtensions
// 下面代码在谷歌浏览器中执行
> var person = {name: 'wdd'};
undefined
> Object.preventExtensions(person);
Object {name: "wdd"}
> person.age = 10
10
> person
Object {name: "wdd"}
> Object.isExtensible(person)
false
2、 密封对象Object.seal
密封对象不可扩展,并且不能删除对象的属性或者方法。但是属性值可以修改。
> var one = {name: 'hihi'}
undefined
> Object.seal(one)
Object {name: "hihi"}
> one.age = 12
12
> one
Object {name: "hihi"}
> delete one.name
false
> one
Object {name: "hihi"}
3 冻结对象 Object.freeze
最严格的防篡改就是冻结对象,对象不可扩展,而且密封,不能修改。只能访问。