src/immutable-lodash.js
function defaultsDeep(map, ...sources) {
  return map.mergeDeepWith((prev, next) => {
    return prev === undefined ? next : prev
  }, ...sources)
}
function defaultsDeep(map, ...sources) {
  return map.mergeDeepWith((prev, next) => {
    return prev === undefined ? next : prev
  }, ...sources)
}
function defaultsDeep ( map , ... sources ) { return map . mergeDeepWith ( ( prev , next ) => { return prev === undefined ? next : prev } , ... sources ) }
This method is like `_.defaults` except that it recursively assigns
default properties.

@static
@memberOf _
@category Iterable
@param {Iterable} iterable The destination iterable.
@param {...Iterable} [sources] The source iterables.
@returns {Iterable} Returns `iterable`.
@see _.defaults
@example

_.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } })
// => { 'a': { 'b': 2, 'c': 3 } }
This method is like _ . defaults except that it recursively assigns default properties .