JavaScript 保護變量不被隨意修改的實現代碼
更新時間:2017年09月27日 11:36:40 作者:八bug哥哥
本文通過實例代碼給大家分享JavaScript 保護變量不被隨意修改的實現方法,需要的朋友參考下吧
下面給大家分享代碼:
/*
* 1.如果在renderTitle,renderContent里面,這樣總數據誰都能修改,不安全
* 改進
* 1.規(guī)定一個專門修改數據的方法,如果想修改數據只能走這個方法
*
* 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 保護變量不被隨意修改的實現代碼,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網站的支持!
相關文章
《JavaScript高級程序設計》閱讀筆記(二) ECMAScript中的原始類型
ECMAScript有5種原始類型(primitive type),即Undefined、Null、Boolean、Number和String。ECMAScript提供了typeof來判斷值的類型2012-02-02

