src/immutable-lodash.js
function defaults(map, ...sources) {
  return map.mergeWith((prev, next) => {
    return prev === undefined ? next : prev
  }, ...sources)
}
function defaults(map, ...sources) {
  return map.mergeWith((prev, next) => {
    return prev === undefined ? next : prev
  }, ...sources)
}
function defaults ( map , ... sources ) { return map . mergeWith ( ( prev , next ) => { return prev === undefined ? next : prev } , ... sources ) }
Creates new iterable with all properties of source iterables that resolve
to `undefined`. Source iterables are applied from left to right.
Once a key is set, additional values of the same key are ignored.

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

_.defaults({ 'a': 1 }, { 'b': 2 }, { 'a': 3 })
// => { 'a': 1, 'b': 2 }
Creates new iterable with all properties of source iterables that resolve to undefined . Source iterables are applied from left to right . Once a key is set additional values of the same key are ignored .