js高级技巧之防篡改对象
2017-01-08 14:48
453 查看
由于js共享的本质,开发人员很可能会意外地修改别人的代码。所有ECMAScript5可以定义防纂改对象。
注意:一旦把对象定义为防篡改,就无法撤销了。
防篡改对象有三个级别,分别是不可拓展对象、密封对象和冻结对象。
1.不可扩展对象
设置成不可扩展对象就不能再给对象添加属性和方法了。
2.密封对象
在不可扩展对象的基础上,又进一步加深了防篡改程度。
这样使得不能删除属性和方法。
检测对象是否被密封。
3.冻结的对象
在密封对象的基础上,又进一步加深了防篡改的程度。
这样使得不能修改属性和方法。
用来检测是否被冻结了。
对于js库作者而言,冻结对象很有用。冻结对象能防止人意外地修改库中的核心对象。
注意:一旦把对象定义为防篡改,就无法撤销了。
防篡改对象有三个级别,分别是不可拓展对象、密封对象和冻结对象。
1.不可扩展对象
Object.preventExtensions(person);//设置为防拓展对象
设置成不可扩展对象就不能再给对象添加属性和方法了。
Object.isExtensible(person);//用来确定对象是否可扩展。
2.密封对象
在不可扩展对象的基础上,又进一步加深了防篡改程度。
Object.seal(person);//将对象密封
这样使得不能删除属性和方法。
Object.isSealed(person);
检测对象是否被密封。
3.冻结的对象
在密封对象的基础上,又进一步加深了防篡改的程度。
Object.freeze(man);
这样使得不能修改属性和方法。
Object.isFrozen(man)
用来检测是否被冻结了。
对于js库作者而言,冻结对象很有用。冻结对象能防止人意外地修改库中的核心对象。
相关文章推荐
- JavaScript 高级技巧——“防篡改对象”的注意要点
- 【JavaScript 高级技巧】防篡改对象+高级定时器
- JavaScript之防篡改对象(高级技巧)
- js高级(类和对象)
- JavaScript高级程序设计(第3版)学习笔记6 初识js对象
- JavaScript高级程序设计 学习笔记 js高级技巧
- js高级编程------------使用prototype仿java对象实现表单验证
- js高级编号笔记[新]-9个核心对象
- JS高级调试技巧:捕获和分析 JavaScript Error详解
- JavaScript高级程序设计(第3版)学习笔记10 再访js对象
- JavaScript高级程序设计(第3版)学习笔记6 初识js对象
- js调bug高级技巧
- 利用维对象来优化数据仓库的高级技巧
- js字符串转换成xml对象并使用技巧解读
- js 小技巧 (速将一个字符串或者时间戳转化成Date对象)
- jsAdvanced-高级技巧
- javascript: 高级技巧: window 对象也可以添加自定义属性, 无须等加载完毕
- js 高级对象
- 五段实用的js高级技巧
- JS高级技巧之函数节流