Guardar objetos Javascript en sessionStorage

SessionStorage y LocalStorage permiten guardar pares clave / valor en un navegador web. El valor debe ser una cadena y guardar objetos js no es trivial.

var user = {'name':'John'};
sessionStorage.setItem('user', user);
var obj = sessionStorage.user; // obj='[object Object]' Not an object

Hoy en día, puede evitar esta limitación al serializar objetos en JSON y luego deserializarlos para recuperar los objetos. Pero la API de almacenamiento siempre pasa porsetItem ygetItem métodos

sessionStorage.setItem('user', JSON.stringify(user));
var obj = JSON.parse(sessionStorage.getItem('user')); // An object :D

¿Puedo evitar esta limitación?

Solo quiero ejecutar algo como esto:

sessionStorage.user.name; // 'John'
sessionStorage.user.name = 'Mary';
sessionStorage.user.name // 'Mary'

He probado eldefineGetter ydefineSetter métodos para interceptar las llamadas, pero es un trabajo tedioso, porque tengo que definir todas las propiedades y mi objetivo es no conocer las propiedades futuras.

Respuestas a la pregunta(8)

Su respuesta a la pregunta