Storage封装

定义

     //定义当前webStorage的类型(localStorage本地存储和sessionStorage会话存储)
        var storage=window.localStorage;
        //定义全局对象
        var Storage={
            set:function (k,v) {
                var temp={};
                for(i in v){
                    temp[i]={};
                    temp[i]['val']=v[i]
                    if(v[i] instanceof Array){
                        temp[i]['type']='Array';
                    }else if(v[i] instanceof Date){
                        temp[i]['type']='Date';
                        temp[i]['val']=v[i].getTime();
                    }else{
                        temp[i]['type']=typeof v[i];
                    }
                }
                storage.setItem(k,JSON.stringify(temp));
            },
            get:function (k) {
                var accept=JSON.parse(storage.getItem(k));
                var temp={};
                for(i in accept){
                    switch(accept[i].type)
                    {
                        case 'Date':
                            temp[i]=new Date(accept[i].val);
                            break;
                        default:
                            temp[i]=accept[i].val;
                    }
                }
                return temp;
            }
        }

使用

    //使用
        var people={
            name:'dsh',
            age:20,
            sex:'男',
            now:new Date(),
            love:['iphone','girl']
        }
        Storage.set('people',people)
        console.log('原始数据:',people)
        console.log('Storage数据:',Storage.get('people'))

效果

说明
本来只是想着,简单的json转字符串,然后在字符串转json对象呢。结果storage不支持Date类型,存进去会变。所以就了个类型,然后转时间戳

原文地址:https://www.cnblogs.com/dshvv/p/8667934.html