html - HTML5 LocalStorage 中的自定义对象类?

标签 html oop local-storage

我正在试用 HTML5 LocalStorage。

在示例中,我只看到简单的 JSON 数据对象,但我有一些自定义数据对象 添加了各种方法(如 addChild、cleanup 等)。

是否可以将这些自定义对象的实例直接存储在 LocalStorage 中,或者我对 LocalStorage 的整个概念的理解是否完全错误?

最佳答案

localStorage 只能存储字符串,因此您尝试存储在 localStorage 中的任何内容都将首先序列化为字符串。因此,在 localStorage 中存储定义 没有意义,只是数据。您可以创建一个从序列化数据生成自定义对象实例的方法:

function Custom() {}
Custom.prototype.addChild = function () {
    console.log(this.x, this.y);
}
// LocalStorage serializes to String first
Custom.prototype.toString = function () {
    return JSON.stringify({
        "x": this.x,
        "y": this.y,
    });
};
Custom.unserialize = function (customData) {
    customData = JSON.parse(customData);
    var custom = new Custom;
    custom.x = customData.x;
    custom.y = customData.y;
    return custom;
}
var custom = new Custom;
custom.x = "foo";
custom.y = "bar";
localStorage.custom = custom;
console.log(Custom.unserialize(localStorage.custom).addChild());

关于html - HTML5 LocalStorage 中的自定义对象类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23295160/

相关文章:

javascript - 使用从 HTML5 数据中提取的 JavaScript 比较两个日期

java - java中私有(private)访问修饰符和非访问修饰符有什么区别?

Android 在应用程序启动时检查存储空间是否不足

javascript - 从 localStorage 检索数值数据

javascript - 通过查找关键字将 Javascript 字符串拆分为字符串数组

javascript - 将列收缩到图像网格的宽度

javascript - 在加载时应用选择背景颜色?

python - 如何从一门类(class)切换到另一门类(class)?

javascript - 在 JavaScript 中调用重写的方法

javascript - localStorage.getItem 在 IE 9 中返回旧数据