Test the existence of a dynamically chosen class

The name of the pictureThe name of the pictureThe name of the pictureClash Royale CLAN TAG#URR8PPP


Test the existence of a dynamically chosen class



I have data coming from an external source that I want to process. In order to do that, the objects I'm receiving are tagged with their original class name. Now I want to take that tag name and use it to populate a model in my own application. I'm stuck at the step where I check for that class having an equivalent in my codebase. Its going to look something like this:


this.objects.forEach((object) => {

if (typeof object.class_tag !== 'undefined') { //the problem line
//create class instance
}

});



In php I'd simply call class_exists to achieve this


<?php
if (class_exists($object->class_tag)) {}



What is the correct approach here?




1 Answer
1



I don't see the clear way to do this in a just one line.



One of the possible approaches is the way you register your existing classes.
For example if you use some kind of a namespace later on you can simply check the class for existance in the namespace.
Sample code:


namespace


class A {}
const a = "A"
const namespace = { A };

if (namespace[a]) {
// class exists, you can create object
const instance = new namespace[a]();
}



Probably, much better approach would be to make some service, that will registerClass, checkClass and createInstance for you. So your logic is wrapped in one place.


service


registerClass


checkClass


createInstance






By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Popular posts from this blog

Visual Studio Code: How to configure includePath for better IntelliSense results

Spring cloud config client Could not locate PropertySource

Regex - How to capture all iterations of a repeating pattern?