SessionStorage と LocalStorage を使用すると、キーと値のペアを Web ブラウザーに保存できます。値は文字列である必要があり、js オブジェクトの保存は簡単ではありません。
var user = {'name':'John'};
sessionStorage.setItem('user', user);
var obj = sessionStorage.user; // obj='[object Object]' Not an object
最近では、オブジェクトを JSON にシリアライズし、デシリアライズしてオブジェクトを復元することで、この制限を回避できます。setItem
ただし、Storage API は常に メソッドとメソッドを通過し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
ましたが、すべてのプロパティを定義する必要があり、将来のプロパティを知ることが目標ではないため、面倒な作業です。