调用字符串构造函数

Wol*_*mec 2 javascript

我有一个构造函数,例如webapp.core.cf1或Backbone.Router.但我得到这个构造函数不是作为参考,而是作为一个字符串!我不能改变这个要求,这个建议.必须是一个字符串.如何从中创建一个新对象,例如classfun("Backbone.Router")?

function classfun (cfstr) 
{ 
  ...
  cf = new window[cfstr]();
Run Code Online (Sandbox Code Playgroud)

如果我这样尝试,我得到错误:...不是构造函数.

为什么这不起作用?有没有使用的替代方式eval()

非常感谢提前

编辑

谢谢大家的答案!

谢谢你,Tronix117,这就是问题!!

感谢Benjamin Schulte的功能!

Tro*_*117 5

如果您在控制台中尝试:

var A=function(a){this.test=a};
b = new window["A"](3);
console.log(b.test); // return 3
Run Code Online (Sandbox Code Playgroud)

所以这意味着,你试图访问不在窗口范围内的东西,它应该是这样的:window.something ["A"],如果你不知道那是什么,something那么你应该使用这个函数本杰明,否则使用这个,因为它的速度更快.