construcción de objetos dinámicos en javascript?

Cuando quiero llamar a una función en JavaScript con argumentos proporcionados desde otro lugar, puedo usar elapply método de la función como:

array = ["arg1", 5, "arg3"] 
...
someFunc.apply(null, array);

pero ¿y si necesito llamar a un constructor de manera similar? Parece que esto no funciona:

array = ["arg1", 5, "arg3"] 
...
someConstructor.apply({}, array);

al menos no como estoy intentando:

template = ['string1', string2, 'etc'];
var resultTpl = Ext.XTemplate.apply({}, template);

esto no funciona wither:

Ext.XTemplate.prototype.constructor.apply({}, template);

¿Alguna forma de hacer que funcione? (En este caso particular encontré quenew Ext.XTemplate(template) funcionará, pero estoy interesado en el caso general)

pregunta similar pero específica para los tipos incorporados y sin respuesta puedo usar:Crear instancias de un objeto JavaScript llamando a prototype.constructor.apply

Gracias.

Editar:

El tiempo ha pasado y ES6 y los transpiladores ahora son una cosa. En ES6 es trivial hacer lo que quería:new someConstructor(...array). Babel convertirá eso en ES5new (Function.prototype.bind.apply(someConstructor, [null].concat(array)))(); que se explica en¿Cómo construir un objeto JavaScript (usando 'apply')?.

Respuestas a la pregunta(4)

Su respuesta a la pregunta