首页 > 编程 > JavaScript > 正文

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

2019-11-19 15:17:17
字体:
来源:转载
供稿:网友

下面给大家分享代码:

/** 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 保护变量不被随意修改的实现代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对武林网网站的支持!

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表