Initial commit
[yaffs-website] / node_modules / grunt-contrib-watch / node_modules / globule / node_modules / lodash / cloneDeepWith.js
1 var baseClone = require('./_baseClone');
2
3 /**
4  * This method is like `_.cloneWith` except that it recursively clones `value`.
5  *
6  * @static
7  * @memberOf _
8  * @since 4.0.0
9  * @category Lang
10  * @param {*} value The value to recursively clone.
11  * @param {Function} [customizer] The function to customize cloning.
12  * @returns {*} Returns the deep cloned value.
13  * @see _.cloneWith
14  * @example
15  *
16  * function customizer(value) {
17  *   if (_.isElement(value)) {
18  *     return value.cloneNode(true);
19  *   }
20  * }
21  *
22  * var el = _.cloneDeepWith(document.body, customizer);
23  *
24  * console.log(el === document.body);
25  * // => false
26  * console.log(el.nodeName);
27  * // => 'BODY'
28  * console.log(el.childNodes.length);
29  * // => 20
30  */
31 function cloneDeepWith(value, customizer) {
32   customizer = typeof customizer == 'function' ? customizer : undefined;
33   return baseClone(value, true, true, customizer);
34 }
35
36 module.exports = cloneDeepWith;