如何使用chrome.storage API在Javascript中保存对象数组?

时间:2013-12-16 17:00:22

标签: javascript google-chrome google-chrome-extension

我了解localStorage不允许您保存对象。根据其文档,使用chrome.storage显然允许这样做。我应该提一下,我是在Chrome扩展程序中写的。

假设我有这个:

Food = function(breakfast, lunch, dinner) {
    this.breakfast = breakfast;
    this.lunch = lunch;
    this.dinner = dinner;
}

foodObjects = [];

foodObjects.push(new Food('eggs', 'ham', 'steak'));
foodObjects.push(new Food('donuts', 'cookies', 'cake'));

chrome.storage.local.set({
    'foodData' : foodObjects
});

//quit program
//open program

chrome.storage.local.get(null, function(data) {
    //this doesn't work
    foodObjects = data.foodData;

    //neither does this
    for(i = 0; i < data.foodData.length; i++) {
        foodObjects.push(data.foodData[i]);
    }
});

正如大家可能猜到的那样,这不起作用。我不知道为什么,但我认为这是因为我保存了对foodObjects[]数组的引用而不是数组中的实际对象。

我的问题是如何保存存储在数组中的对象中包含的数据? 谢谢你的帮助。

0 个答案:

没有答案