--- title: Deepcopy id: 596a8888ab7c01048de257d5 challengeType: 5 videoUrl: '' localeTitle: Deepcopy --- ## Description
Tarefa:

Escreva uma função que retorna uma cópia profunda de um determinado objeto.

A cópia não deve ser o mesmo objeto que foi fornecido.

Esta tarefa não testará para:

Objetos com propriedades que são funções Objetos de data ou objeto com propriedades que são Objetos de data RegEx ou objeto com propriedades que são objetos RegEx Cópia de protótipo
## Instructions
## Tests
```yml tests: - text: deepcopy deve ser uma função. testString: 'assert(typeof deepcopy === "function", "deepcopy should be a function.");' - text: 'deepcopy({test: "test"}) deve retornar um objeto.' testString: 'assert(typeof deepcopy(obj1) === "object", "deepcopy({test: "test"}) should return an object.");' - text: Não deve retornar o mesmo objeto que foi fornecido. testString: 'assert(deepcopy(obj2) != obj2, "Should not return the same object that was provided.");' - text: 'Quando passado um objeto contendo uma matriz, deve retornar uma cópia profunda do objeto.' testString: 'assert.deepEqual(deepcopy(obj2), obj2, "When passed an object containing an array, should return a deep copy of the object.");' - text: 'Quando passado um objeto contendo outro objeto, deve retornar uma cópia profunda do objeto.' 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 ```