Uso de .apply () com o operador 'new'. Isso é possível?

Em JavaScript, eu quero criar uma instância de objeto (vianew operador), mas passe um número arbitrário de argumentos para o construtor. Isso é possível?

O que eu quero fazer é algo assim (mas o código abaixo não funciona):

function Something(){
    // init stuff
}
function createSomething(){
    return new Something.apply(null, arguments);
}
var s = createSomething(a,b,c); // 's' is an instance of Something

A resposta

A partir das respostas aqui, ficou claro que não há nenhuma maneira interna de ligar.apply() com onew operador. No entanto, as pessoas sugeriram várias soluções realmente interessantes para o problema.

Minha solução preferida eraeste de Matthew Crumley (Eu modifiquei para passar oarguments propriedade):

var createSomething = (function() {
    function F(args) {
        return Something.apply(this, args);
    }
    F.prototype = Something.prototype;

    return function() {
        return new F(arguments);
    }
})();

questionAnswers(30)

yourAnswerToTheQuestion