JavaScript 保護(hù)變量不被隨意修改的實(shí)現(xiàn)代碼
下面給大家分享代碼:
/*
* 1.如果在renderTitle,renderContent里面,這樣總數(shù)據(jù)誰(shuí)都能修改,不安全
* 改進(jìn)
* 1.規(guī)定一個(gè)專門修改數(shù)據(jù)的方法,如果想修改數(shù)據(jù)只能走這個(gè)方法
*
* action代表一個(gè)命令對(duì)象,就是一個(gè)普通的js對(duì)象,起碼需要一個(gè)字段控制命令類型type,其他字段隨意
*
* */
const CHANGE_FONT_SILE='CHANGE_FONT_SILE';
//設(shè)置一個(gè)閉包,把變量保護(hù)起來(lái),通過返回值調(diào)用
function createStore() {
let appState={
fontSize:'26px',
title:{
text:'標(biāo)題',
color:'red'
},
content:{
text:'類容',
color:'green'
}
}
//保護(hù)變量被修改,深克隆
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();
//取值函數(shù)
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里面初始值,單獨(dú)一個(gè)修改文件
store.dispatch({type:CHANGE_FONT_SILE,fontSize:'30px'})
renderApp();
總結(jié)
以上所述是小編給大家介紹的JavaScript 保護(hù)變量不被隨意修改的實(shí)現(xiàn)代碼,希望對(duì)大家有所幫助,如果大家有任何疑問請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
相關(guān)文章
可以用鼠標(biāo)拖動(dòng)的DIV實(shí)現(xiàn)思路及代碼
DIV可以拖動(dòng)的效果,想必大家都有見到過吧,在本文也為大家實(shí)現(xiàn)一個(gè)不錯(cuò)的可以用鼠標(biāo)拖動(dòng)的div,感興趣的各位不要錯(cuò)過2013-10-10
JavaScript與C# Windows應(yīng)用程序交互方法
JavaScript與C# Windows應(yīng)用程序交互方法...2007-06-06
javascript實(shí)現(xiàn)蒙版與禁止頁(yè)面滾動(dòng)
這篇文章主要為大家詳細(xì)介紹了javascript實(shí)現(xiàn)蒙版與禁止頁(yè)面滾動(dòng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-01-01
javascript js 操作數(shù)組 增刪改查的簡(jiǎn)單實(shí)現(xiàn)
下面小編就為大家?guī)?lái)一篇javascript js 操作數(shù)組 增刪改查的簡(jiǎn)單實(shí)現(xiàn)。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來(lái)看看吧2016-06-06
基于JavaScript實(shí)現(xiàn)拖動(dòng)滑塊效果
這篇文章主要為大家詳細(xì)介紹了基于JavaScript實(shí)現(xiàn)拖動(dòng)滑塊效果,拖動(dòng)滑塊時(shí)數(shù)字進(jìn)行變化,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02
JavaScript幾種形式的樹結(jié)構(gòu)菜單
今天我主要講3種不同展示的JavaScript樹結(jié)構(gòu)菜單,分別是懸浮層樹(Tree)、右鍵菜單樹(ContextMenu)和節(jié)點(diǎn)樹(TreeMenu),目前都支持無(wú)限級(jí)層次。2010-05-05

