簡體   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