- 老师这里操作的是sessionStorage,我想请问一下平时实际工作中用这个用的多吗?我就见过用localStorage的。
- 老师这里的封装我觉得有点奇怪,因为这样的写相当于限定了对象的格式只有两层?所以我改写了一下,但是这样还是有个问题 ,就是在setStorage的时候,只能把原数据取出来修改后再完整的写入。
const STORAGE_KEY = "mall";
const find = function(obj, name) {
if (obj[name]) {
return obj;
}
let res;
for (let prop in obj) {
if (
obj.hasOwnProperty(prop) &&
Object.prototype.toString.call(obj[prop]) === "[object Object]"
) {
res = find(obj[prop], name);
}
if (res) {
return res;
}
}
return res;
};
export default {
getStorage() {
return JSON.parse(window.sessionStorage.getItem(STORAGE_KEY) || "{}");
},
setStorage(obj) {
window.sessionStorage.setItem(STORAGE_KEY, JSON.stringify(obj));
},
findItem(key) {
const data = this.getStorage();
const res = find(data, key);
return res;
},
getItem(key) {
const res = this.findItem(key);
return res ? res[key] : undefined;
}
}