Выбор ответа Middle Объекты и массивы обновлено

Что не умеет structuredClone

Вопрос

На каком значении structuredClone бросит ошибку?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: { name: 'Аня', greet() { return 'hi'; } }. Алгоритм структурного клонирования не умеет копировать функции: объект с методом вызовет DataCloneError.

Варианты ответа

  1. Объект с циклической ссылкой на самого себя
  2. new Map([['a', 1], ['b', { nested: true }]])
  3. { created: new Date() }
  4. { name: 'Аня', greet() { return 'hi'; } }правильный ответ

Разбор

Алгоритм структурного клонирования не умеет копировать функции: объект с методом вызовет DataCloneError. Циклические ссылки он обрабатывает корректно, это одно из его преимуществ перед JSON. Map, Set, Date, RegExp, ArrayBuffer и типизированные массивы копируются с сохранением типа. Ещё он не копирует DOM-узлы и теряет прототип у экземпляров классов: копия станет простым объектом.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.