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 相关文章推荐
List Installed Software Features
Jun 11 Javascript
ASP中进行HTML数据及JS数据编码函数
Nov 11 Javascript
Jquery加载时从后台读取数据绑定到dropdownList实例
Jun 09 Javascript
如何正确使用javascript 来进行我们的程序开发
Jun 23 Javascript
js实现div闪烁原理及实现代码
Jun 24 Javascript
Egret引擎开发指南之编译项目
Sep 03 Javascript
javascript中Array数组的迭代方法实例分析
Feb 04 Javascript
JS实现鼠标点击展开或隐藏表格行的方法
Mar 03 Javascript
ECHO.js 纯javascript轻量级延迟加载的实例代码
May 24 Javascript
Html5 js实现手风琴效果
Apr 17 Javascript
Extjs gridpanel 中的checkbox(复选框)根据某行的条件不能选中的解决方法
Feb 17 Javascript
使用element-ui +Vue 解决 table 里包含表单验证的问题
Jul 17 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
实用函数7
2007/11/08 PHP
PHP获取中英混合字符串长度的方法
2014/06/07 PHP
php实现的替换敏感字符串类实例
2014/09/22 PHP
php实现图片以base64显示的方法
2016/10/13 PHP
javascript 写类方式之十
2009/07/05 Javascript
javascript教程之不完整的继承(js原型链)
2014/01/13 Javascript
jquery遍历checkbox的注意事项说明
2014/02/21 Javascript
JS获取随机数函数可自定义最小值最大值
2014/05/08 Javascript
JavaScript按值删除数组元素的方法
2015/04/24 Javascript
浅谈jQuery页面的滚动位置scrollTop、scrollLeft
2015/05/19 Javascript
jQuery自动添加表单项的方法
2015/07/13 Javascript
每天一篇javascript学习小结(Date对象)
2015/11/13 Javascript
利用css+原生js制作简单的钟表
2020/04/07 Javascript
Bootstrap 3的box-sizing样式导致UEditor控件的图片无法正常缩放的解决方案
2016/09/15 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
2016/09/20 Javascript
ES6新特征数字、数组、字符串
2016/10/01 Javascript
AngularJS使用ng-class动态增减class样式的方法示例
2017/05/18 Javascript
原生js实现移动端触摸轮播的示例代码
2017/12/22 Javascript
Vue2.x中利用@font-size引入字体图标报错的解决方法
2018/09/28 Javascript
vue.js实现回到顶部动画效果
2019/07/31 Javascript
在Linux系统上通过uWSGI配置Nginx+Python环境的教程
2015/12/25 Python
学习python 之编写简单乘法运算题
2016/02/27 Python
python图书管理系统
2020/04/05 Python
使用TensorFlow实现SVM
2018/09/06 Python
Python3-异步进程回调函数(callback())介绍
2020/05/02 Python
详解快速开发基于 HTML5 网络拓扑图应用
2018/01/08 HTML / CSS
安纳塔拉酒店度假村及水疗官方网站:Anantara Hotel
2016/08/25 全球购物
Melissa鞋英国官方网站:Nonnon
2019/05/01 全球购物
网络教育毕业生自我鉴定
2013/10/10 职场文书
庆元旦文艺演出主持词
2014/03/27 职场文书
幼儿园师德师风学习材料
2014/05/29 职场文书
小区推广策划方案
2014/06/06 职场文书
2014办公室副主任四风对照检查材料思想汇报
2014/09/20 职场文书
制定企业培训计划的五大要点!
2019/07/10 职场文书
测量JavaScript函数的性能各种方式对比
2021/04/27 Javascript
如何用JavaScript实现一个数组惰性求值库
2021/05/05 Javascript