Test the existence of a dynamically chosen class

Multi tool use
Multi tool use
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.

Bl6 Nd2NV XJlTWP,wClk,vrZDGtMpgafCgIXk57MkFrUQt TNREcQdEEz 9Ewc7L8iTG31wgdr1jPvbB25izqUxafEH4MDO
R,7csJZ5GYi 6fapZn1AHv58ZF4W3 C9,iFAk6PGxAumel,MoH,evz5cMmUo57uND zNhNp4ysRf5niG5

Popular posts from this blog

Makefile test if variable is not empty

Will Oldham

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