1 | import baseClone from './_baseClone.js';
|
2 |
|
3 | /** Used to compose bitmasks for cloning. */
|
4 | var 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 | */
|
25 | function cloneDeep(value) {
|
26 | return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);
|
27 | }
|
28 |
|
29 | export default cloneDeep;
|