全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

javascript防篡改对象实例详解

本文实例讲述了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 防篡改对象的用法示例  # 设置为  # 几个  # 也有  # 相关内容  # 多个  # 基础上  # 被人  # 遍历  # 其他的  # 我们可以  # 这也  # 这就  # 数据结构  # 可以通过  # 要注意  # 第二个  # 给大家  # 可以看到  # 就不能  # 可以看出 


相关文章: 油猴 教程,油猴搜脚本为什么会网页无法显示?  建站之星如何助力企业快速打造五合一网站?  如何在IIS中新建站点并解决端口绑定冲突?  建站主机如何选?高性价比方案全解析  建站主机系统SEO优化与智能配置核心关键词操作指南  建站主机CVM配置优化、SEO策略与性能提升指南  专业网站制作服务公司,有哪些网站可以免费发布招聘信息?  设计网站制作公司有哪些,制作网页教程?  成都网站制作公司哪家好,四川省职工服务网是做什么用?  盘锦网站制作公司,盘锦大洼有多少5G网站?  免费网站制作appp,免费制作app哪个平台好?  C#如何使用XPathNavigator高效查询XML  如何在景安服务器上快速搭建个人网站?  网站制作新手教程,新手建设一个网站需要注意些什么?  学校建站服务器如何选型才能满足性能需求?  微信h5制作网站有哪些,免费微信H5页面制作工具?  移民网站制作流程,怎么看加拿大移民官网?  建站之星安装步骤有哪些常见问题?  建站之星CMS建站配置指南:模板选择与SEO优化技巧  网站插件制作软件免费下载,网页视频怎么下到本地插件?  零基础网站服务器架设实战:轻量应用与域名解析配置指南  如何在香港服务器上快速搭建免备案网站?  免费的流程图制作网站有哪些,2025年教师初级职称申报网上流程?  建站之星北京办公室:智能建站系统与小程序生成方案解析  网站制作公司排行榜,四大门户网站排名?  微信小程序 五星评分(包括半颗星评分)实例代码  长沙企业网站制作哪家好,长沙水业集团官方网站?  大型企业网站制作流程,做网站需要注册公司吗?  如何通过服务器快速搭建网站?完整步骤解析  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  建站之星如何实现PC+手机+微信网站五合一建站?  制作销售网站教学视频,销售网站有哪些?  建站主机选购指南与交易推荐:核心配置解析  建站之星伪静态规则如何正确配置?  交易网站制作流程,我想开通一个网站,注册一个交易网址,需要那些手续?  威客平台建站流程解析:高效搭建教程与设计优化方案  建站之星导航菜单设置与功能模块配置全攻略  装修招标网站设计制作流程,装修招标流程?  如何高效完成自助建站业务培训?  制作表格网站有哪些,线上表格怎么弄?  太平洋网站制作公司,网络用语太平洋是什么意思?  建站之星CMS五站合一模板配置与SEO优化指南  广东企业建站网站优化与SEO营销核心策略指南  企业微网站怎么做,公司网站和公众号有什么区别?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  品牌网站制作公司有哪些,买正品品牌一般去哪个网站买?  如何用腾讯建站主机快速创建免费网站?  建站主机如何安装配置?新手必看操作指南  如何选择长沙网站建站模板?H5响应式与品牌定制哪个更优?  广平建站公司哪家专业可靠?如何选择? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。