I understand how Function.prototype.bind.apply works. Suppose the following definitions:
var Constructor = function(someArgument){
//constructor body here
};
var creator = function(ctor, args){
args.unshift(null); //or anything else to make 'bind' succeed
return new (Function.prototype.bind.apply(ctor, args));
};
var creator2 = function(ctor, args){
return new ctor(args);
};
var obj = creator(Constructor, ['someVar']);
var obj2 = creator2(Constructor, ['someVar']);
Both creator and creator2 work, so why would one choose creator over creator2?