Реализуйте функцию "deep copy" (глубокое копирование) для объекта в JavaScript. Глубокое копирование означает, что все значения объекта копируются и любое изменение данных исходного объекта не влияет на копию, и наоборот.
- При работе с типами ограничиваемся примитивами, объектами и массивами.
- Считаем что входящий объект POJO (plain old js object), т.е. игнорируем их прототип и конструктор.
- Считаем что объекты, ссылающиеся сами на себя, нам не попадутся.