{"ScriptPreparationCode":"var MyObject = {\r\n description: \u0027Creates a deep copy of source, which should be an object or an array.\u0027,\r\n myNumber: 123456789,\r\n myBoolean: true,\r\n jayson: {\r\n stringify: \u0027JSON.stringify() method converts a JavaScript value to a JSON string....\u0027,\r\n parse: \u0027JSON.parse() method parses a JSON string...\u0027\r\n }\r\n};\r\n\r\nfunction deepClone(preObj) {\r\n let newObj, value, key;\r\n if (typeof preObj !== \u0022object\u0022 || preObj === null) {\r\n return preObj;\r\n }\r\n newObj = Array.isArray(preObj) ? [] : {}\r\n for (key in preObj) {\r\n value = preObj[key];\r\n newObj[key] = deepClone(value);\r\n }\r\n return newObj\r\n}\r\n\r\nvar myCopy = null;\r\n","TestCases":[{"Name":"Lodash cloneDeep","Code":"myCopy = _.cloneDeep(MyObject);","IsDeferred":false},{"Name":"Json clone","Code":"myCopy = JSON.parse(JSON.stringify(MyObject));","IsDeferred":false},{"Name":"Fast deep clone","Code":"deepClone(MyObject)","IsDeferred":false}]}