JavaScript 保护变量不被随意修改的实现代码


Posted in Javascript onSeptember 27, 2017

下面给大家分享代码:

/*
* 1.如果在renderTitle,renderContent里面,这样总数据谁都能修改,不安全
* 改进
* 1.规定一个专门修改数据的方法,如果想修改数据只能走这个方法
*
* action代表一个命令对象,就是一个普通的js对象,起码需要一个字段控制命令类型type,其他字段随意
*
* */
const CHANGE_FONT_SILE='CHANGE_FONT_SILE';
//设置一个闭包,把变量保护起来,通过返回值调用
function createStore() {
  let appState={
    fontSize:'26px',
    title:{
      text:'标题',
      color:'red'
    },
    content:{
      text:'类容',
      color:'green'
    }
  }
  //保护变量被修改,深克隆
  let getState=()=>JSON.parse(JSON.stringify(appState));
  //改变变量的方法
  let dispatch=(action)=>{
    switch(action.type){
      case CHANGE_FONT_SILE:
        appState.fontSize=action.fontSize;
      default:
        return;
    }
  }
  //返回出去的修改和取值的接口
 return{
   getState,
   dispatch
 }
}
let store=createStore();
//取值函数
function renderTitle() {
  let titleEle = document.querySelector('#title');
  titleEle.innerHTML = store.getState().title.text;
  titleEle.style.color = store.getState().title.color;
  titleEle.style.fontSize = store.getState().fontSize;
}
function renderContent() {
  let titleEle=document.querySelector("#content");
  titleEle.innerHTML=store.getState().content.text;
  titleEle.style.color=store.getState().content.color;
  titleEle.style.fontSize=store.getState().fontSize;
}
function renderApp() {
  renderTitle();
  renderContent()
}
//修改appState里面初始值,单独一个修改文件
store.dispatch({type:CHANGE_FONT_SILE,fontSize:'30px'})
renderApp();

总结

以上所述是小编给大家介绍的JavaScript 保护变量不被随意修改的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
Javascript select下拉框操作常用方法
Nov 09 Javascript
用js做一个小游戏平台 (一)
Dec 29 Javascript
jquery异步调用页面后台方法‏(asp.net)
Mar 01 Javascript
解析JavaScript中点号“.”的多义性
Dec 02 Javascript
javascript实现复制与粘贴操作实例
Oct 16 Javascript
JS DOM实现鼠标滑动图片效果
Sep 17 Javascript
jQuery Easyui datagrid editor为combobox时指定数据源实例
Dec 19 Javascript
select下拉框插件jquery.editable-select详解
Jan 22 Javascript
JavaScript实现的鼠标响应颜色渐变效果完整实例
Feb 18 Javascript
微信通过页面(H5)直接打开本地app的解决方法
Sep 09 Javascript
详解React+Koa实现服务端渲染(SSR)
May 23 Javascript
vue 点击按钮实现动态挂载子组件的方法
Sep 07 Javascript
JavaScript实现打印星型金字塔功能实例分析
Sep 27 #Javascript
微信小程序 按钮滑动的实现方法
Sep 27 #Javascript
详解Vue-cli代理解决跨域问题
Sep 27 #Javascript
jQuery 利用ztree实现树形表格的实例代码
Sep 27 #jQuery
javascript 作用于作用域链的详解
Sep 27 #Javascript
深入理解Vue2.x的虚拟DOM diff原理
Sep 27 #Javascript
bootstrap table实现双击可编辑、添加、删除行功能
Sep 27 #Javascript
You might like
十天学会php之第六天
2006/10/09 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
利用PHP如何写APP接口详解
2016/08/23 PHP
PHP模糊查询技术实例分析【附源码下载】
2019/03/07 PHP
laravel csrf排除路由,禁止,关闭指定路由的例子
2019/10/21 PHP
在JavaScript中通过URL传递汉字的方法
2007/04/09 Javascript
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
js调试系列 控制台命令行API使用方法
2014/06/18 Javascript
js中setTimeout()与clearTimeout()用法实例浅析
2015/05/12 Javascript
JS截取与分割字符串常用技巧总结
2015/11/10 Javascript
Vue.js系列之vue-router(上)(3)
2017/01/03 Javascript
node.js爬虫爬取拉勾网职位信息
2017/03/14 Javascript
浅谈Vue-cli 命令行工具分析
2017/11/22 Javascript
除Console.log()外更多的Javascript调试命令
2018/01/24 Javascript
vue 中引用gojs绘制E-R图的方法示例
2018/08/24 Javascript
使用jQuery如何写一个含验证码的登录界面
2019/05/13 jQuery
vue项目里面引用svg文件并给svg里面的元素赋值
2020/08/17 Javascript
js+h5 canvas实现图片验证码
2020/10/11 Javascript
Python脚本实现DNSPod DNS动态解析域名
2015/02/14 Python
Python使用matplotlib实现在坐标系中画一个矩形的方法
2015/05/20 Python
Python排序搜索基本算法之希尔排序实例分析
2017/12/09 Python
python3操作微信itchat实现发送图片
2018/02/24 Python
Python 单元测试(unittest)的使用小结
2018/11/14 Python
Python数据可视化实现正态分布(高斯分布)
2019/08/21 Python
关于ZeroMQ 三种模式python3实现方式
2019/12/23 Python
土木工程师岗位职责
2013/11/24 职场文书
教育科研先进个人材料
2014/01/26 职场文书
文明餐桌活动方案
2014/02/11 职场文书
小学生综合素质评语
2014/04/23 职场文书
平安建设工作方案
2014/06/02 职场文书
高中校园广播稿3篇
2014/09/29 职场文书
2015大学自主招生自荐信范文
2015/03/04 职场文书
人事聘任通知
2015/04/21 职场文书
团队拓展训练心得体会
2016/01/12 职场文书
同学联谊会邀请函
2019/06/24 职场文书