これはJavascript Serialization of Typed Objectsへのフォローアップの質問です。そのソリューションは、型がわかっているオブジェクトに対しては正常に機能しますが、現在、非直列化を実行するコードでは不明な型のオブジェクトがあります。シリアライズする必要があるいくつかのプロパティを持つ基本クラス "スプライト"があります。任意の数の派生クラス(「Player」や「Platform」など)は、Spriteクラスから派生し、独自のプロパティを追加できます。私はまた、Sprite派生オブジェクトのコレクションを含む "MapLayer"オブジェクトを持っています。デシリアライゼーションが完了したときに、各スプライトが正しい派生型になるように、レイヤーとそのすべてのスプライトをデシリアライズするにはどうすればよいですか。 eval( "new" + derivedTypeName + parameterList)を使用する必要がありますか?より良い方法がありますか?未知の派生クラスのJavaScriptオブジェクトを逆シリアル化する方法
詳細: Sprite基本クラスはハードコードされていますが、すべての派生クラスは生成コードです。私は、コードジェネレータがすべての派生クラスに対して関数deserializeを生成するようにすることができますが、ジェネリックベースクラスの逆シリアル化関数からそれらを適切に呼び出す方法はありますか? MapLayerクラスは1つだけです。スプライトから派生したすべてのクラスでdeserialize関数を呼び出す必要があります。
これを本質的に沸騰させることを検討してください。あなたは別の質問を参照しますが、その質問と一致しないシナリオを記述することになります(たとえば、非直列化では使用されない 'new'について質問しています)。 –
@KenBrowning" new "その質問に。 – BlueMonkMN