本文实例讲述了javascript防篡改对象。分享给大家供大家参考,具体如下:

JavaScript中对象内置有多个属性Configurable,Writable,Enumerable,Value,Get和Set,来控制属性的行为。同样的ES5也有几个方法,来指定对象的行为。我们知道,javascript中的对象是可以共享的,也是默认可拓展的:
//一旦将对象设置防篡改,就不能撤销了
//众所周知,一般的对象是可以随意拓展的
var person = {name:'liufang'};
person.age = 22;
document.write(person.age+"<br>");//22
我们可以添加、删除或者修改其他的属性或者方法。但是这也会导致一些问题,比如多人开发时,某些属性被人为修改,造成工程上的麻烦。这就促使了防篡改对象的诞生。防篡改对象有三个级别,分别是不可拓展对象、密封对象和冻结对象。
不可拓展对象
先来说说不可拓展对象吧,可以通过就普通对象设置为不可拓展对象,来使新添加的属性无效:
//防拓展对象 Object.preventExtensions(person);//设置为防拓展对象 person.smallName = 'ff'; document.write(person.smallName+"<br>");//undefined //说明不能添加新属性 //检测是否为可拓展对象 document.write(Object.isExtensible(person)+"<br>");//false //虽然防拓展对象不能添加属性,但是可以删除属性 delete person.age; document.write(person.age+"<br>");//undefined ,已经删除成功
可以看到,虽然不可拓展对象可以防止新添加属性,却不能阻止他人删除属性,当然也不能阻止修改了。所以引出了第二个等级的密封对象。
密封对象
密封对象就是在不可拓展对象的基础上添加一条规则,也就是不能删除属性。
//密封对象
//在不可拓展的基础上也不能删除
var people = {name:'liufang'};
Object.seal(people);//将对象密封
delete people.name;
document.write(people.name+"<br>");//liufang ,说明不能删除
people.name = "tyq";//虽然不能删除,但是可以修改
document.write(people.name+"<br>");//tyq ,说明修改成功
//检测
document.write(Object.isSealed(people)+"<br>");//true
可以看出,密封对象虽然防止了删除,但是还是无法阻止修改,所以就有了最高级别的限制,也就是冻结对象。
冻结对象
被冻结的对象既不能拓展,也不能删除和修改。
//冻结对象
//不能拓展,不能删除,不能修改
var man = {name:'tyq'};
Object.freeze(man);
//检测
document.write(Object.isFrozen(man));//true
最后要注意的就是,一旦对象被设置放篡改对象,则不能撤销,所以需要慎重考虑。
更多关于JavaScript相关内容可查看本站专题:《javascript面向对象入门教程》、《JavaScript中json操作技巧总结》、《JavaScript切换特效与技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript动画特效与技巧汇总》、《JavaScript错误与调试技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
# javascript
# 防篡改
# 对象
# JavaScript创建防篡改对象的方法分析
# JavaScript 防篡改对象的用法示例
# 设置为
# 几个
# 也有
# 相关内容
# 多个
# 基础上
# 被人
# 遍历
# 其他的
# 我们可以
# 这也
# 这就
# 数据结构
# 可以通过
# 要注意
# 第二个
# 给大家
# 可以看到
# 就不能
# 可以看出
相关文章:
,想在网上投简历,哪几个网站比较好?
简易网站制作视频教程,使用记事本编写一个简单的网页html文件?
如何在企业微信快速生成手机电脑官网?
百度网页制作网站有哪些,谁能告诉我百度网站是怎么联系?
模具网站制作流程,如何找模具客户?
广东企业建站网站优化与SEO营销核心策略指南
官网自助建站系统:SEO优化+多语言支持,快速搭建专业网站
保定网站制作方案定制,保定招聘的渠道有哪些?找工作的人一般都去哪里看招聘信息?
营销式网站制作方案,销售哪个网站招聘效果最好?
音响网站制作视频教程,隆霸音响官方网站?
深圳网站制作公司好吗,在深圳找工作哪个网站最好啊?
微课制作网站有哪些,微课网怎么进?
西安专业网站制作公司有哪些,陕西省建行官方网站?
浅谈Javascript中的Label语句
如何在阿里云ECS服务器部署织梦CMS网站?
如何在建站宝盒中设置产品搜索功能?
简历在线制作网站免费版,如何创建个人简历?
网页设计与网站制作内容,怎样注册网站?
创业网站制作流程,创业网站可靠吗?
小建面朝正北,A点实际方位是否存在偏差?
高端云建站费用究竟需要多少预算?
在线流程图制作网站手机版,谁能推荐几个好的CG原画资源网站么?
建站之星下载版如何获取与安装?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
C#怎么创建控制台应用 C# Console App项目创建方法
建站主机功能解析:服务器选择与快速搭建指南
建站org新手必看:2024最新搭建流程与模板选择技巧
早安海报制作网站推荐大全,企业早安海报怎么每天更换?
建站主机CVM配置优化、SEO策略与性能提升指南
如何通过VPS建站实现广告与增值服务盈利?
中山网站推广排名,中山信息港登录入口?
东莞专业网站制作公司有哪些,东莞招聘网站哪个好?
GML (Geography Markup Language)是什么,它如何用XML来表示地理空间信息?
建站中国官网:模板定制+SEO优化+建站流程一站式指南
海南网站制作公司有哪些,海口网是哪家的?
建站之星如何优化SEO以实现高效排名?
如何确认建站备案号应放置的具体位置?
如何在IIS管理器中快速创建并配置网站?
建站之星展会模版如何一键下载生成?
网站插件制作软件免费下载,网页视频怎么下到本地插件?
建站IDE高效指南:快速搭建+SEO优化+自适应模板全解析
建站之星如何一键生成手机站?
SQL查询语句优化的实用方法总结
哪家制作企业网站好,开办像阿里巴巴那样的网络公司和网站要怎么做?
Swift中switch语句区间和元组模式匹配
上海网站制作网站建设公司,建筑电工证网上查询系统入口?
宝塔面板如何快速创建新站点?
深圳网站制作的公司有哪些,dido官方网站?
如何在服务器上配置二级域名建站?
香港服务器租用每月最低只需15元?
*请认真填写需求信息,我们会在24小时内与您取得联系。