Это следующий вопрос к Javascript Serialization of Typed Objects. Это решение работает нормально для объектов, тип которых известен, но теперь у меня есть объект типа, который неизвестен кодом, который будет выполнять де-сериализацию. Существует базовый класс «Sprite», который имеет ряд свойств, которые необходимо сериализовать. Любое количество производных классов (таких как «Player» и «Platform» и т. Д.) Может быть получено из класса Sprite и добавлять свои собственные свойства. У меня также есть объект «MapLayer», который содержит коллекцию объектов, полученных из Sprite. Как я де-сериализую слой и все его спрайты, чтобы каждый спрайт имел правильный производный тип при завершении де-сериализации. Нужно ли использовать eval («new» + resultTypeName + parameterList)? Есть ли способ лучше?Как десериализовать объект JavaScript неизвестного производного класса
Подробнее: Базовый класс Sprite имеет жесткую кодировку, но все производные классы генерируются кодом. Я могу заставить генератор кода генерировать десериализационные функции для каждого производного класса, но как я могу их соответствующим образом назвать из функции десериализации универсальной базой? Существует только один класс MapLayer, и каким-то образом он должен потенциально вызвать функцию десериализации на всех классах, полученных из Sprite.
Рассмотрите кипячение этого по существу. Вы ссылаетесь на другой вопрос, но продолжаете описывать сценарий, который не соответствует этому вопросу (например, вы спрашиваете о 'new', который не используется при десериализации) –
@KenBrowning« new »используется в предлагаемом ответе на этот вопрос. – BlueMonkMN