--- title: Deepcopy id: 596a8888ab7c01048de257d5 challengeType: 5 videoUrl: '' localeTitle: DeepCopy --- ## Description
Задача:

Напишите функцию, которая возвращает глубокую копию данного объекта.

Копия не должна быть тем же самым объектом, который был дан.

Эта задача не будет проверяться:

Объекты со свойствами, которые являются функциями. Объекты Date или объект со свойствами, которые являются объектами Date. RegEx или объект со свойствами, которые являются объектами RegEx. Прототипирование копий
## Instructions
## Tests
```yml tests: - text: deepcopy должна быть функцией. testString: 'assert(typeof deepcopy === "function", "deepcopy should be a function.");' - text: 'deepcopy({test: "test"}) должен возвращать объект.' testString: 'assert(typeof deepcopy(obj1) === "object", "deepcopy({test: "test"}) should return an object.");' - text: 'Не следует возвращать тот же объект, который был предоставлен.' testString: 'assert(deepcopy(obj2) != obj2, "Should not return the same object that was provided.");' - text: 'Когда передан объект, содержащий массив, должен возвращать глубокую копию объекта.' testString: 'assert.deepEqual(deepcopy(obj2), obj2, "When passed an object containing an array, should return a deep copy of the object.");' - text: 'При передаче объекта, содержащего другой объект, следует вернуть глубокую копию объекта.' testString: 'assert.deepEqual(deepcopy(obj3), obj3, "When passed an object containing another object, should return a deep copy of the object.");' ```
## Challenge Seed
```js function deepcopy (obj) { // Good luck! return true; } ```
### After Test
```js console.info('after the test'); ```
## Solution
```js // solution required ```