我有以下代码
var s = storage('foo');
s.bar = 100;
storage('foo', s);
storage
从某些存储介质返回一个对象。然后我更改对象的一个属性的值并再次发送它storage
。我的问题是有没有办法让它成为一个班轮?就像是
storage('foo', storage('foo').bar = 100);
但是上面的代码只保存100
而不是整个foo
对象。
这是storage
函数,它存储在 localstorage 上,但使其成为对象存储而不是字符串存储:
function storage(item, value) {
if(value!=null) {
var result = (storage()) ? storage() : {};
if(item) result[item] = value;
return localStorage.setItem('storage', JSON.stringify(result))
} else return (item) ? storage()[item] : JSON.parse(localStorage.getItem('storage'));
}
编辑:所以我最终对存储功能进行了一行更改。但这并没有考虑到多维使用。所以我会欢迎任何建议。
function storage(item, value, property) {
...
if(item) (property) ? result[item][property] = value : result[item] = value;
...
}