Tuve un problema similar en Node.js, cuando tuve que crear dinámicamente diferentes objetos de controlador dependiendo de los datos. Primero reuní todos los manejadores disponibles, que se implementaron como módulos separados, en un objeto. En un caso simple, esto podría ser codificado así.
var handlers = {
handlerX : require('HandlerX'),
handlerY : require('HandlerY')
};
Entonces, cada vez que tenía que crear una instancia de un controlador, lo hice así:
var handlername = getHandlerName()
var handler = new handlers[handlername]();
Por supuesto, esto sólo funciona si usted sabe, o puede determinar mediante programación la lista de todos los objetos Va a necesito crear
+1 muy agradable meder – alex
gracias! ¿cómo paso los parámetros? – yee379
También puede usar 'apply' para pasar parámetros, lo que es útil si no los conoce con antelación, por ejemplo, 'this [name] .apply (null, args)' donde args es una matriz de parámetros/argumentos. Parece ser el caso más de las veces al llamar funciones de forma dinámica. –