## Sponsors The following companies, organizations, and individuals support the ongoing maintenance and development of {%= name %}. [Become a Sponsor](https://github.com/sponsors/jonschlinkert) to add your logo to this README, or any of [my other projects](https://github.com/jonschlinkert?tab=repositories&q=&type=&language=&sort=stargazers) ### Gold Sponsors | [https://jaake.tech/](https://jaake.tech/) | |:---:| | [https://jaake.tech/](https://jaake.tech/) | ## Usage ```js const cloneDeep = require('{%= name %}'); let obj = { a: 'b' }; let arr = [obj]; let copy = cloneDeep(arr); obj.c = 'd'; console.log(copy); //=> [{ a: 'b' }] console.log(arr); //=> [{ a: 'b', c: 'd' }] ``` ## Heads up! The last argument specifies whether or not to clone instances (objects that are from a custom class or are not created by the `Object` constructor. This value may be `true` or the function use for cloning instances. When an `instanceClone` function is provided, it will be invoked to clone objects that are not "plain" objects (as defined by [`isPlainObject`](#isPlainObject)). If `instanceClone` is not specified, this library will not attempt to clone non-plain objects, and will simply copy the object reference. ## Attribution Initially based on [mout's](https://github.com/mout/mout) implementation of deepClone.