| var apply = require('./_apply'), | |
|     baseRest = require('./_baseRest'), | |
|     customDefaultsMerge = require('./_customDefaultsMerge'), | |
|     mergeWith = require('./mergeWith'); | |
| 
 | |
| /** | |
|  * This method is like `_.defaults` except that it recursively assigns | |
|  * default properties. | |
|  * | |
|  * **Note:** This method mutates `object`. | |
|  * | |
|  * @static | |
|  * @memberOf _ | |
|  * @since 3.10.0 | |
|  * @category Object | |
|  * @param {Object} object The destination object. | |
|  * @param {...Object} [sources] The source objects. | |
|  * @returns {Object} Returns `object`. | |
|  * @see _.defaults | |
|  * @example | |
|  * | |
|  * _.defaultsDeep({ 'a': { 'b': 2 } }, { 'a': { 'b': 1, 'c': 3 } }); | |
|  * // => { 'a': { 'b': 2, 'c': 3 } } | |
|  */ | |
| var defaultsDeep = baseRest(function(args) { | |
|   args.push(undefined, customDefaultsMerge); | |
|   return apply(mergeWith, undefined, args); | |
| }); | |
| 
 | |
| module.exports = defaultsDeep;
 |