ну да, я немного не дописал:
Function.prototype.applyConstruct = function() {
var F = function() {}
F.prototype = this.prototype;
this.apply( F = new F, arguments );
return F;
}
F = function() { this.a = 1; console.log( this, arguments )};
var a = F.applyConstruct( 1,2,3,4,5 );
alert( a instanceof F );