Javascript 重建JSON中序列化的对象

Javascript 重建JSON中序列化的对象,javascript,json,serialization,Javascript,Json,Serialization,在我的web应用程序中,我正在使用序列化对象进行存储。这很好,我可以很容易地从JSON字符串重新创建对象,但是我丢失了所有对象的方法。有没有一种简单的方法可以将这些方法添加到我忽略的对象中——可能涉及到原型设计,这是我不太熟悉的东西 或者,这只是一个创建我自己的复杂功能来完成这项工作的例子 编辑:理想情况下,我要找的是: Object.inheritMethods(AnotherObject); 调用JSON.parse后获得对象后,您就有了许多选项。这里有几个例子 混合 有许多技术可以实现这

在我的web应用程序中,我正在使用序列化对象进行存储。这很好,我可以很容易地从JSON字符串重新创建对象,但是我丢失了所有对象的方法。有没有一种简单的方法可以将这些方法添加到我忽略的对象中——可能涉及到原型设计,这是我不太熟悉的东西

或者,这只是一个创建我自己的复杂功能来完成这项工作的例子

编辑:理想情况下,我要找的是:

Object.inheritMethods(AnotherObject);

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

  • 混合

    有许多技术可以实现这一点,本文对此进行了很好的描述。然而,这里有一个简单的例子,它不需要任何新的语言特性。请记住,对象本质上只是一个映射,因此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);
    
  • 原型

    使用Felix提到的方法。由于这仅在ES5中提供,因此您可能希望使用来保证其可用性


  • 这是一个老问题,但我今天在搜索这个问题时发现了它。 我在别处找到了最新的解决方案(ES6):


    assign(新的myclass(),jsonString)

    我想那里的解决方案可能会对我有用,但需要做一些修改。我想我希望有更像Object的东西。InheritationMethods(Object2)虽然-我会澄清原始帖子来说明这一点。在支持它的浏览器中,您可能可以使用
    Object.create
    :这看起来很有希望,我现在就可以玩它了。这非常有效,一旦我修复了其余的bug:)如果你想提交它作为答案,我会接受它。应该注意的是,这只适用于没有构造函数参数的类或没有副作用的构造函数。