UNPKG

677 BJavaScriptView Raw
1import baseClone from './_baseClone.js';
2
3/** Used to compose bitmasks for cloning. */
4var CLONE_DEEP_FLAG = 1,
5 CLONE_SYMBOLS_FLAG = 4;
6
7/**
8 * This method is like `_.clone` except that it recursively clones `value`.
9 *
10 * @static
11 * @memberOf _
12 * @since 1.0.0
13 * @category Lang
14 * @param {*} value The value to recursively clone.
15 * @returns {*} Returns the deep cloned value.
16 * @see _.clone
17 * @example
18 *
19 * var objects = [{ 'a': 1 }, { 'b': 2 }];
20 *
21 * var deep = _.cloneDeep(objects);
22 * console.log(deep[0] === objects[0]);
23 * // => false
24 */
25function cloneDeep(value) {
26 return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
27}
28
29export default cloneDeep;