9

In my Node.Js application (server side) I have to create an object instance (that is a class, so with new MyClass()) but MyClass is a string.

Its possible to create object instance from a String ? I've see that in browser side I can use window, but here I'm on server side...

I will need this because I will now the name of the class at run time, so I can't instantiate this object in "code".

Moreover, I can have several classes that need to be created in this way. In short, I have a configuration file that explicit this kind of class, and I need to convert this string in a real JavaScript object.

2

2 Answers 2

14

With nodejs, window is "replaced" by global. So if your class is available in the global context, you can use global["ClassName"] to fetch it.

However, if you can, you may also consider the use of a dictionary of constructors. It is generally cleaner. Here is an example.

var constructors = {
   Class1: Class1,
   Class2: Class2
};

var obj1 = new constructors["Class1"](args);
Sign up to request clarification or add additional context in comments.

1 Comment

This is exactly what i was in mind! My idea was to create an handler to manage all the classes in a Object like you showed me the factory. But I did not think it was possible to call new on it. You saved my life :D
1

Do you mean

var myClass = Object.assign(new MyClass(), JSON.parse(classString));

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.