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

发布时间 - 2026-01-11 03:26:30    点击率:

下面给大家分享代码:

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


# js  # 保护变量不被修改  # javascript  # 变量  # JavaScript修改作用域外变量的方法  # javascript(jquery)利用函数修改全局变量的代码  # 给大家  # 小编  # 在此  # 谁都  # 不被  # 所述  # 不安全  # 给我留言  # 一个普通  # 感谢大家  # 能走  # 返回值  # 疑问请  # 有任何  # function  # CHANGE_FONT_SILE  # const  # px  # title  # text 


相关栏目: 【 网站优化151355 】 【 网络推广146373 】 【 网络技术251813 】 【 AI营销90571


相关推荐: 如何用PHP快速搭建高效网站?分步指南  如何快速搭建个人网站并优化SEO?  佐糖AI抠图怎样调整抠图精度_佐糖AI精度调整与放大细化操作【攻略】  百度浏览器如何管理插件 百度浏览器插件管理方法  Laravel怎么防止CSRF攻击_Laravel CSRF保护中间件原理与实践  怎样使用JSON进行数据交换_它有什么限制  网站图片在线制作软件,怎么在图片上做链接?  深圳网站制作平台,深圳市做网站好的公司有哪些?  通义万相免费版怎么用_通义万相免费版使用方法详细指南【教程】  利用JavaScript实现拖拽改变元素大小  Laravel Eloquent:优雅地将关联模型字段扁平化到主模型中  JS中页面与页面之间超链接跳转中文乱码问题的解决办法  Laravel如何设置定时任务(Cron Job)_Laravel调度器与任务计划配置  Laravel怎么在Blade中安全地输出原始HTML内容  Laravel的HTTP客户端怎么用_Laravel HTTP Client发起API请求教程  Laravel定时任务怎么设置_Laravel Crontab调度器配置  微信小程序 HTTPS报错整理常见问题及解决方案  如何构建满足综合性能需求的优质建站方案?  网站制作大概要多少钱一个,做一个平台网站大概多少钱?  如何在云指建站中生成FTP站点?  Laravel怎么多语言本地化设置_Laravel语言包翻译与Locale动态切换【手册】  laravel怎么配置和使用PHP-FPM来优化性能_laravel PHP-FPM配置与性能优化方法  Chrome浏览器标签页分组怎么用_谷歌浏览器整理标签页技巧【效率】  Laravel如何从数据库删除数据_Laravel destroy和delete方法区别  laravel怎么在请求结束后执行任务(Terminable Middleware)_laravel Terminable Middleware请求结束任务执行方法  Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程  今日头条AI怎样推荐抢票工具_今日头条AI抢票工具推荐算法与筛选【技巧】  php 三元运算符实例详细介绍  如何在搬瓦工VPS快速搭建网站?  Linux安全能力提升路径_长期防护思维说明【指导】  装修招标网站设计制作流程,装修招标流程?  java中使用zxing批量生成二维码立牌  html5如何实现懒加载图片_ intersectionobserver api用法【教程】  Laravel集合Collection怎么用_Laravel集合常用函数详解  教学论文网站制作软件有哪些,写论文用什么软件 ?  ChatGPT回答中断怎么办 引导AI继续输出完整内容的方法  高防服务器租用如何选择配置与防御等级?  高防网站服务器:DDoS防御与BGP线路的AI智能防护方案  Laravel如何生成API文档?(Swagger/OpenAPI教程)  北京网页设计制作网站有哪些,继续教育自动播放怎么设置?  EditPlus 正则表达式 实战(3)  Laravel怎么导出Excel文件_Laravel Excel插件使用教程  为什么要用作用域操作符_php中访问类常量与静态属性的优势【解答】  如何获取上海专业网站定制建站电话?  Laravel如何与Pusher实现实时通信?(WebSocket示例)  VIVO手机上del键无效OnKeyListener不响应的原因及解决方法  Laravel PHP版本要求一览_Laravel各版本环境要求对照  如何基于PHP生成高效IDC网络公司建站源码?  ,网页ppt怎么弄成自己的ppt?  什么是JavaScript解构赋值_解构赋值有哪些实用技巧