Mistre83 Mistre83 - 6 months ago 25
Node.js Question

NodeJS - Javascript create object instance from String

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.

Answer

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 factory, i.e. a repository/dictionary of constructors. It may be cleaner. Here is an example.

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

var obj1 = new factory["Class1"](args);