【发布时间】:2011-12-30 18:22:04
【问题描述】:
这是Javascript Serialization of Typed Objects 的后续问题。该解决方案适用于类型已知的对象,但现在我有一个类型为将执行反序列化的代码未知的对象。有一个基类“Sprite”,它有许多需要序列化的属性。任何数量的派生类(例如“播放器”和“平台”等)都可以从 Sprite 类派生并添加它们自己的属性。我还有一个“MapLayer”对象,其中包含一组 Sprite 派生对象。如何反序列化图层及其所有精灵,以便在反序列化完成后每个精灵都将具有正确的派生类型。我需要使用 eval("new" + derivedTypeName + parameterList) 吗?有没有更好的办法?
更多详情: Sprite 基类是硬编码的,但所有派生类都是生成代码。我可以让代码生成器为每个派生类生成反序列化函数,但是如何从通用基类反序列化函数中适当地调用它们呢?只有一个 MapLayer 类,它必须以某种方式潜在地调用从 Sprite 派生的所有类的反序列化函数。
【问题讨论】:
-
考虑将其归结为本质。您引用了另一个问题,但您继续描述了与该问题不匹配的场景(例如,您询问的是
new,它不用于反序列化) -
@KenBrowning "new" 用于该问题的建议答案。
标签: javascript json serialization