Встречается на собеседованиях • сегодня

Как сделать глубокую копию объекта содержащего функции

Для глубокого копирования объекта с функциями можно использовать комбинацию JSON.parse(JSON.stringify()) не подойдет, так как он не копирует функции. Вместо этого можно использовать рекурсивную функцию или библиотеки типа Lodash (_.cloneDeep).

Пример с рекурсивной функцией:

javascript
function deepClone(obj) {
  if (obj === null || typeof obj !== 'object') {
    return obj;
  }
  
  const clone = Array.isArray(obj) ? [] : {};
  
  for (let key in obj) {
    if (obj.hasOwnProperty(key)) {
      clone[key] = deepClone(obj[key]);
    }
  }
  
  return clone;
}

const original = { a: 1, b: () => console.log('test') };
const copied = deepClone(original); // Функция скопируется

text

**Использование Lodash:**
```javascript
import _ from 'lodash';
const copied = _.cloneDeep(original);

Функции копируются по ссылке, но структура объекта будет полностью скопирована.

Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы