이것은 Javascript Serialization of Typed Objects의 후속 질문입니다. 이 솔루션은 유형이 알려진 객체에 대해서는 정상적으로 작동하지만 이제는 비 직렬화를 수행 할 코드에 의해 알 수없는 유형의 객체가 있습니다. 직렬화해야 할 여러 속성이있는 기본 클래스 "Sprite"가 있습니다. 임의의 수의 파생 클래스 ("Player"및 "Platform"등)는 Sprite 클래스에서 파생되고 자체 속성을 추가 할 수 있습니다. 또한 Sprite 파생 개체 컬렉션을 포함하는 "MapLayer"개체가 있습니다. 비 직렬화가 완료되면 각 스프라이트가 올바른 파생 유형이되도록 레이어와 모든 스프라이트를 비 직렬화합니다. eval ("new"+ derivedTypeName + parameterList)을 사용해야합니까? 더 좋은 방법이 있습니까?알 수없는 파생 클래스의 JavaScript 객체를 비 직렬화하는 방법
자세한 내용 : Sprite 기본 클래스는 하드 코딩되었지만 파생 클래스는 모두 생성 된 코드입니다. 코드 생성기에서 모든 파생 클래스에 대해 deserialize 함수를 생성 할 수는 있지만 일반 기본 클래스 deserialization 함수에서 적절하게 호출하는 방법은 무엇입니까? MapLayer 클래스는 하나 뿐이며, 어떻게 든 Sprite에서 파생 된 모든 클래스에서 deserialize 함수를 호출해야합니다.
이 내용을 본질적으로 끓여보십시오. 다른 질문을 참조하지만 그 질문과 일치하지 않는 시나리오를 설명합니다 (예 : deserialization에 사용되지 않는 'new'에 대해 묻고 있습니다). –
@KenBrowning "new"가 제안 된 답변에 사용되었습니다 그 질문에. – BlueMonkMN