cloneDeepWith.js 848 B

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