如何使用本地存储中的对象保存对象

时间:2017-12-09 20:37:33

标签: javascript local-storage

我有一个类Videoclub,主要属性是(该类已经有getter和setter):

var nombre = nom;
var clientes = new Array();
var productos = new Array();

我正在尝试创建一个对象数组Videoclub

let videoclubs = new Array();
let videoclub = new Videoclub("videoshop"); // videoshop is the atribute nombre
videoclubs.push(videoclub);

我尝试将数组保存在本地存储

localStorage.setItem(nombreEnStorage, JSON.stringify(videoclubs));

当我从本地存储中取货时

function cargar(nombreEnStorage) {
    let texto = localStorage.getItem(nombreEnStorage);
    return JSON.parse(texto);
}

我无法访问任何视频俱乐部的方法,甚至不能访问吸毒者和制定者。

控制台说:

  

未捕获的TypeError:videoclubs [0] .getNombre不是函数

1 个答案:

答案 0 :(得分:0)

你这里有一个工作实例

 let persons = new Array();
let obj1 = {name: "John Doe", age: 30, car: {color: "red", model: "Honda"}};

persons.push(obj1);
localStorage.setItem("persons", JSON.stringify(persons));
function cargar(nombreEnStorage) {
    let texto = localStorage.getItem(nombreEnStorage);
    return JSON.parse(texto);
}
cargar("persons");
let personsFromLocalStorage = cargar("persons");
console.log(personsFromLocalStorage);

如果要再次转换回类Object以访问函数,请执行以下操作:

Object.cast = function cast(rawObj, constructor)
{
    var obj = new constructor();
    for(var i in rawObj)
        obj[i] = rawObj[i];
    return obj;
}
var fooJSON = Object.cast(persons, Object)[0];
console.log(fooJSON);