這是針對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