老师,为什么我封装的storage的setItem方法出现了获取不到storage的问题?
来源:4-9 Storage封装
 
			慕仙6370059
2022-09-14
debug截图:
index.js代码
const STORAGE_KEY='mall';
export default{
    // 封装storage存储(sessionStorage)
//特点:不会永久存储(区别于localstorage),随浏览器关闭而销毁。
    name:'storage',
    setItem(key,value,model_name){
        //设置对象中字段值
        if(model_name){
           let val=this.getItem(model_name);
            val[key]=value;
            this.setItem(model_name,val);
        }else{
            //设置值方法(存储storage值)
        let val=this.getStorage();
        val[key]=value;
        window.sessionStorage.setItem(STORAGE_KEY,JSON.stringify(val));
        }
    },
    getItem(key,model_name){
        //获取对象中字段值,key为对象的字段名,model_name:对象
        if(model_name){
            let val=this.getItem(model_name);
            if(val){
                return val[key];
            }
        }
        // 直接获取对象,key为对象名
        return this.getStorage[key];
    },
    getStorage(){
        //获取整个storage
        return JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || '{}');//将字符串转成json,当为空时,设置为json空对象
    },
    clear(key,model_name){
        //删除storage方法
        let val=this.getStorage();
        if(model_name){
            delete val[model_name][key];
        }else{
            delete val[key];
        }
        this.setItem(val);
    }
}
app.vue代码截图
写回答
	1回答
- 
				  河畔一角 2022-09-14 看起来没啥问题,可以加一下课程群,下午我看一下代码。 012022-09-14
相似问题
