A lot of these patterns you're used to seeing in Java stem from Java's static nature.
Here's a car factory in javascript:
function makeCar(dealerName) { return new Car(dealerName); }
And here's a configured car factory: var myCarProvider = makeCar.bind(null, "my dealer");
It makes precisely zero sense to create abstractions that reimplement core language features. That would be like writing a C function to add two uint8_ts, or a macro that expands to inline assembly to convert a float to an int32_t. You already have these things built-in, you don't need a gorillion enterprisey patterns.