代码改变世界

防篡改对象

2016-08-08 17:12  改吧  阅读(229)  评论(0编辑  收藏  举报

1.不可扩展对象:Obeject.preventExtensions()

var pp={name:'wehweh'};
Object.preventExtensions(pp)
Object {name: "wehweh"}
pp.age=23
23
pp
Object {name: "wehweh"}

 

ps:这个方法可以改变name也可以删除name但是就是不能扩展属性

  检查是否可以扩展属性的方法:isExtensible()

 

2.密封对象:Object.seal()

var ps={name:'wewe'};
undefined
Object.seal(ps)
Object {name: "wewe"}
ps.age=23
23
ps
Object {name: "wewe"}
delete ps.name
false
ps
Object {name: "wewe"}

ps.name="hh"
"hh"
ps
Object {name: "hh"}

ps:不可以扩展属性,也不可以删除 ,但是可以修改

  Objece.seal()方法可以确定对象是否密封了

3.冻结对象Object.freeze()

var person={name:'leiwenwen'};
undefined
Object.freeze(person)
Object {name: "leiwenwen"}
person.age=22
22
person
Object {name: "leiwenwen"}
delete person.name
false
person
Object {name: "leiwenwen"}
person.name="wenwen"
"wenwen"
person
Object {name: "leiwenwen"}

 ps:Object.freeze():不可以扩展属性,也不可以删除跟修改现有的属性

  isFrozen()方法可以确定对象是否冻结了