1 var apply = require('./_apply'),
2 mergeDefaults = require('./_mergeDefaults'),
3 mergeWith = require('./mergeWith'),
4 rest = require('./rest');
7 * This method is like `_.defaults` except that it recursively assigns
10 * **Note:** This method mutates `object`.
15 * @param {Object} object The destination object.
16 * @param {...Object} [sources] The source objects.
17 * @returns {Object} Returns `object`.
20 * _.defaultsDeep({ 'user': { 'name': 'barney' } }, { 'user': { 'name': 'fred', 'age': 36 } });
21 * // => { 'user': { 'name': 'barney', 'age': 36 } }
24 var defaultsDeep = rest(function(args) {
25 args.push(undefined, mergeDefaults);
26 return apply(mergeWith, undefined, args);
29 module.exports = defaultsDeep;