Javascript копирует содержимое одного литерала объекта в другой, не отражая изменений в будущем? - PullRequest
1 голос
/ 19 марта 2012

Я пытаюсь эмулировать html5 sessionStorage для браузеров, которые его не поддерживают. Я эмулирую объект sessionStorage как литерал объекта и проверяю, изменился ли он, сохраняя как старую версию объекта sessionStorage, так и новую. Однако, если я непосредственно сделаю «старую» копию sessionStorage, прямо равную самому объекту sessionStorage, если объект sessionStorage будет изменен, он также отразит эти изменения на «старой» копии. Как скопировать литерал объекта, не отражая изменения в будущем? Пример кода, который не работает: http://jsfiddle.net/pkXXC/1. Нажатие на кнопку обновит объект sessionStorage. Результаты заносятся в консоль.
Примечание. Для работы примера вы должны использовать Internet Explorer 7.0 или ниже.

1 Ответ

1 голос
/ 19 марта 2012

То, что вы ищете, называется «глубокая копия».У Google есть много примеров, и есть один в jQuery - $.extend(true, ...)

...