function create(prototype, properties, guard) {
      var result = baseCreate(prototype);
      if (guard && isIterateeCall(prototype, properties, guard)) {
        properties = undefined;
      }
      return properties ? baseAssign(result, properties) : result;
    }
This method is like `_.defaults` except that it recursively assigns
default properties.

**Note:** This method mutates `object`.

@static
@memberOf _
@category Object
@param {Object} object The destination object.
@param {...Object} [sources] The source objects.
@returns {Object} Returns `object`.
@example

_.defaultsDeep({ 'user': { 'name': 'barney' } }, { 'user': { 'name': 'fred', 'age': 36 } });
// => { 'user': { 'name': 'barney', 'age': 36 } }