是否可以从类似于Java的字符串类名一般在Javascript中创建对象?也许某种类型的工厂?
我想要一个数据库来保存一个类名列表。每个类名将与用户友好名称相关联。这些用户友好的名称将填充菜单。当用户选择菜单项时,将检索相应的类名并创建类(对象)。我目前在Java中做类似的事情。
例如,而不是
var obj = new demo.view.CustomObject({});
我想要这样的东西
var obj = Factory.create(' demo.view.CustomObject',params);
谢谢
答案 0 :(得分:1)
您正在寻找的是使用bracket notation来使用字符串访问对象属性。在这里,我创建了一个工厂方法,用于按字符串分割字符串。然后使用array reduce我进入constructor
函数,最后创建对象。
function construct(constructorPath, params) {
var constructorFunc = constructorPath.split('.')
.reduce((prev, next) => prev[next], window)
return new constructorFunc(params)
}
// Usage:
var obj = construct('demo.view.CustomObject', someParams)