SessionStorageとLocalStorageを使用すると、キーと値のペアをWebブラウザーに保存できます。値は文字列でなければならず、保存jsオブジェクトは簡単ではありません。
var user = {'name':'John'};
sessionStorage.setItem('user', user);
var obj = sessionStorage.user; // obj='[object Object]' Not an object
現在では、オブジェクトをJSONにシリアル化してから逆シリアル化してオブジェクトを復元することで、この制限を回避できます。ただし、ストレージ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
メソッドを使用して呼び出しをインターセプトしようとしましたが、すべてのプロパティを定義する必要があり、私の目標は将来のプロパティを知ることではないため、面倒な作業です。