Well it first creates a new object with the default formats as its prototype, then merges the `formats` the user supplies to the constructor.