问题描述
|
SessionStorage和LocalStorage允许将键/值对保存在Web浏览器中。该值必须是一个字符串,并且save js对象并不简单。
var user = {\'name\':\'John\'};
sessionStorage.setItem(\'user\',user);
var obj = sessionStorage.user; // obj=\'[object Object]\' Not an object
如今,您可以通过将对象序列化为JSON,然后反序列化它们以恢复对象来避免这种限制。但是Storage API始终通过setItem
和getItem
方法传递。
sessionStorage.setItem(\'user\',JSON.stringify(user));
var obj = JSON.parse(sessionStorage.getItem(\'user\')); // An object :D
我可以避免这种限制吗?
我只想执行这样的事情:
sessionStorage.user.name; // \'John\'
sessionStorage.user.name = \'Mary\';
sessionStorage.user.name // \'Mary\'
我已经尝试使用defineGetter
和defineSetter
方法来拦截呼叫,但这是一项繁琐的工作,因为我必须定义所有属性,而我的目标是不知道将来的属性。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)