Creates a factory function that returns an object of a given type.
The default object to return when calling the factory function.
A factory function that returns a new object of a given type. Accepts an object argument that shallowly overrides properties on the default object.
Creates a factory function that returns an object of a given type.