По ходу удалось вопрос решить с помощью eval;
var LockedClass = function(){
};
var ClassUnlock= function( locked, args ){
var functionLikeString = 'new ' + locked +' (';
_.each( args , function( opt, i ){
functionLikeString += 'args ['+i+']';
if(i < args .length-1){
functionLikeString += ', '
}
});
functionLikeString += ')';
return eval( functionLikeString );
}
var NewObject1 = ClassUnlock( LockedClass, [ 1]);
var NewObject2 = ClassUnlock( LockedClass, [ 1, 2]);
var NewObject3 = ClassUnlock( LockedClass, [ 1, 2, 3, 4, ....]);
Но этим методом совершенно не хочется пользоваться.
Нет к нему никакого доверия.