2015-05-04 2 views
0

То, что я получаю в localStorage, является [object Object], но для других переменных в javascript он действительно работает.Почему jquery глубокая копия для localStorage не работает?

Пример кода:

var some_hash = { 
"key1":"value1", 
"key2": "value2", 
"key3" : [{ 
"key3a": "value3a"}] 


} 

var deep_copy = $.extend(true, {}, some_hash) 
console.log(deep_copy) 
Object {key1: "value1", key2: "value2", key3: Array[1]} 

localStorage["help"] = $.extend(true, {}, some_hash) 
console.log(localStorage["help"]) 
[object Object] 

Почему? Любое обходное решение?

ответ

3

localStorage хранит значения как строки, а не объекты.

Попробуйте использовать JSON.stringify и JSON.parse:

var deep_copy = JSON.stringify($.extend(true, {}, some_hash)); 
console.log(JSON.parse(deep_copy)); 

Смотрите здесь, тоже: Storing Objects in HTML5 localStorage