在我的Node.Js应用程序(服务器端)中,我必须创建一个对象实例(这是一个类,所以使用new MyClass()
)但MyClass是string
。
可以从String创建对象实例吗?我在浏览器方面看到我可以使用window
,但是我在服务器端......
我需要这个,因为我现在将在运行时使用该类的名称,因此我无法在“代码”中实例化此对象。
此外,我可以有几个需要以这种方式创建的类。 简而言之,我有一个显式这种类的配置文件,我需要在真正的JavaScript对象中转换这个字符串。
答案 0 :(得分:10)
使用nodejs,window
被"替换为"按global
。因此,如果您的类在全局上下文中可用,则可以使用global["ClassName"]
来获取它。
但是,如果可以的话,您也可以考虑使用构造函数字典。它通常更清洁。这是一个例子。
var constructors = {
Class1: Class1,
Class2: Class2
};
var obj1 = new constructors["Class1"](args);
答案 1 :(得分:2)
你的意思是
var myClass = Object.assign(new MyClass(), JSON.parse(classString));