SessionStorage और LocalStorage एक वेब ब्राउज़र में कुंजी / मूल्य जोड़े को बचाने की अनुमति देता है। मान एक स्ट्रिंग होना चाहिए, और js ऑब्जेक्ट्स को सहेजना तुच्छ नहीं है।
var user = {'name':'John'};
sessionStorage.setItem('user', user);
var obj = sessionStorage.user; // obj='[object Object]' Not an object
आजकल, आप JSON पर ऑब्जेक्ट्स को क्रमांकित करके, और फिर ऑब्जेक्ट्स को पुनर्प्राप्त करने के लिए उन्हें डीरियलाइज़ करके इस सीमा से बच सकते हैं। लेकिन स्टोरेज एपीआई हमेशा 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
तरीकों की कोशिश की है, लेकिन यह एक थकाऊ काम है, क्योंकि मुझे सभी गुणों को परिभाषित करना है और मेरा लक्ष्य भविष्य के गुणों को जानना नहीं है।