重建以JSON序列化的对象

Jim*_*Jim 6 javascript serialization json

在我的Web应用程序中,我使用JSON.stringify()序列化对象以进行存储,如此处所述.这很棒,我可以轻松地从JSON字符串重新创建对象,但是我丢失了所有对象的方法.有没有一种简单的方法将这些方法添加回我正在忽略的对象 - 可能涉及原型设计,我不太熟悉的东西?

或者只是为了这样做而创建我自己的精细功能?

编辑:理想情况下,我正在寻找类似的东西:

Object.inheritMethods(AnotherObject);
Run Code Online (Sandbox Code Playgroud)

Ste*_*eve 2

调用 JSON.parse 后获得对象后,您就有很多选择。这里有几个例子。

  1. 米辛

    有很多技术可以做到这一点,本文对此进行了很好的描述。但是,这是一个简单的示例,不需要任何新的语言功能。请记住,对象本质上只是一个映射,因此 JS 可以轻松地向对象添加其他属性。

    var stuffToAdd = function() {
        this.name = "Me";        
    
        this.func1 = function() {
            print(this.name);
        }
    
        this.func2 = function() {
            print("Hello again");
        }
    }
    
    var obj = JSON.parse("{}");
    stuffToAdd.call(obj);
    
    Run Code Online (Sandbox Code Playgroud)
  2. 原型

    使用Felix 提到的Object.create方法。由于这仅在 ES5 中提供,因此您可能需要使用填充程序来保证其可用性。