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解构赋值_解构赋值有哪些实用技巧

