construção dinâmica de objetos em javascript?

Quando desejo chamar uma função em javascript com argumentos fornecidos de outros lugares, posso usar oapply método da função como:

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

mas e se eu precisar chamar um construtor de maneira semelhante? Isso não parece funcionar:

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

pelo menos não como eu estou tentando:

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

isso não funciona com:

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

Alguma maneira de fazer isso funcionar? (Nesse caso em particular, descobri quenew Ext.XTemplate(template) funcionará, mas estou interessado no caso geral)

pergunta semelhante, mas específica para tipos internos e sem resposta eu posso usar:Instanciando um objeto JavaScript chamando prototype.constructor.apply

Obrigado.

Editar:

O tempo passou e ES6 e transpilers agora são uma coisa. No ES6, é trivial fazer o que eu queria:new someConstructor(...array). Babel vai transformar isso em ES5new (Function.prototype.bind.apply(someConstructor, [null].concat(array)))(); o que é explicado emComo construir um objeto JavaScript (usando 'apply')?.

questionAnswers(4)

yourAnswerToTheQuestion