繁体   English   中英

如何将对象与对象一起保存在本地存储中

[英]How to save an object with objects in local storage

我有一班Videoclub,主要的贡献是(该班已经有吸气剂和吸气剂):

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);
}

我无法使用videoclub的任何方法,甚至不能使用getter和setter。

控制台说:

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

你有一个工作的例子

 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);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM