json.stringify не обрабатывает методы объекта

Я пытаюсь разработать автономное приложение HTML5, которое должно работать в большинстве современных браузеров (Chrome, Firefox, IE 9+, Safari, Opera). Так как IndexedDB не поддерживается Safari (пока), а WebSQL устарел, я решил использовать localStorage для хранения пользовательских объектов JavaScript иJSON.stringify()/JSON.parse() положить или вытащить объекты. Тем не менее, я узнал, чтоJSON.stringify() не обрабатывает методы. Вот пример объекта с простым методом:

    var myObject = {};
    myObject.foo = 'bar';
    myObject.someFunction = function () {/*code in this function*/}

Если я раскрою этот объект (а затем поместу его в localStorage), все, что будет сохранено,myObject.fooнеmyObject.someFunction().

    //put object into localStorage
    localStorage.setItem('myObject',JSON.stringify(myObject));

    //pull it out of localStorage and set it to myObject
    myObject = localStorage.getItem('myObject');

    //undefined!
    myObject.someFunction

Я уверен, что многие из вас, вероятно, уже знают об этом ограничении / функции / как бы вы это ни называли. Обходной путь, который я придумала, заключается в создании объекта с помощью методов (myObject = new objectConstructor()), вытащите свойства объекта из localStorage и назначьте их новому объекту, который я создал. Я чувствую, что это обходной подход, но я новичок в мире JavaScript, поэтому я решил его. Итак, вот мой главный вопрос: я бы хотел, чтобы весь объект (свойства + методы) был включен в localStorage. Как мне это сделать? Если вы можете показать мне лучший алгоритм или другой метод JSON, о котором я не знаю, я был бы очень признателен.

Ответы на вопрос(2)

Ваш ответ на вопрос