这是针对Javascript Serialization of Typed Objects的后续问题。该解决方案适用于已知类型的对象,但现在我有一个类型对象,该对象将由执行反序列化的代码未知。有一个基类“Sprite”,它有许多需要序列化的属性。任何数量的派生类(例如“Player”和“Platform”等)都可以从Sprite类派生并添加它们自己的属性。我也有一个“MapLayer”对象,它包含一组Sprite派生对象。如何反序列化图层及其所有精灵,以便在反序列化完成后每个精灵都具有正确的派生类型。我是否需要使用eval(“new”+ derivedTypeName + parameterList)?有没有更好的办法?如何反序列化未知派生类的JavaScript对象
更多详细信息: Sprite基类是硬编码的,但所有的派生类都是生成的代码。我可以让代码生成器为每个派生类生成反序列化函数,但是如何从泛型基类反序列化函数中适当地调用它们?只有一个MapLayer类,不知何故,它必须潜在地调用从Sprite派生的所有类的反序列化函数。
考虑将其降低到其本质。你引用另一个问题,但是你继续描述一个不符合该问题的场景(例如,你问的是'new',它不用于反序列化) – 2011-12-30 18:54:53
@KenBrowning在建议的答案中使用“new”这个问题。 – BlueMonkMN 2011-12-31 02:08:24