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