I think we just need to check if `defaults[v]` is an object, because if it's an array, we accept the value of the given config.
Furthermore, I think it's more powerful to use `defaults[v].constructor === Object` instead of _.isObject() because `_.isObject(new Date)` is true.

So `if (defaults[v].constructor === Object) {` is more appropriate for this line no?