2010-09-10 71 views
0

的考虑以下代码:如何创建MooTools的类变量名

var Someclass = new Class(); 
var Anotherclass = new Class(); 
var classes = ['Someclass', 'Anotherclass']; 

,我想创建mootools的类与动态名称。 我当然可以通过EVAL做到这一点:

eval('var obj = new ' + classes[0] + '(params);'); 

,但我不认为这是一个很好的解决方案。 如何以“正确”的方式做到这一点? 也许somethink像:

var obj = ObjectFactory(classes[0], params); 

回答

3

使用bracket notation指以班级为一个字符串。

var object = new window['SomeClass'](); 

将其参数作为常规传递。

var object = new window['SomeClass'](1, 2, "three"); 

而不是全局创建所有类,使用一个对象命名空间它们。

var My = { 
    SomeClass: new Class(..), 
    OtherClass: new Class(..) 
}; 

var object = new My['SomeClass'](); 
+0

感谢您的回答! – hamczu 2010-10-10 21:09:09