Почти во всех интервью вас спросят: «Что такое поверхностное копирование и глубокое копирование объектов в javascript? и как мы можем их достичь»

Большинство из вас, включая меня, ответили так:

Оператор распространения, Object.assign() и Object.create() для неглубокого копирования.

Очевидно, JSON.stringify() для глубокой копии.

Но теперь в javascript есть собственный способ создания глубокой копии объектов.

structuredClone — это новая функция, встроенная в среду выполнения javascript для создания глубокой копии объектов.

Теперь JSON.stringify() уже используется, но зачем вводить совершенно новую функцию для той же операции?

Ответ: оба ведут себя по-разному. Давайте рассмотрим один пример, тогда мы поймем, почему structuredClone is подходит лучше, чем JSON.stringify()

Давайте создадим фиктивный объект уведомления следующим образом.

затем с помощью JSON.stringify() и JSON.parse() выполните глубокую копию. Ниже приводится результат:

давайте сделаем то же самое с structureClone() . Вот журнал.

Если вы внимательно наблюдаете, дата должна быть объектом Date, а не строкой, но в случае StructuredDeepCopy дата является объектом Date, а не строкой. JSON.stringify() не может обрабатывать все типы, которые мы используем в javascript.

Есть много других вещей, которые JSON.stringify() не может обработать в javascript. Итак, лучше пойти с structuredClone() .

о, подожди! реальный вопрос в том, что structuredClone() может выполнять глубокое клонирование?
Вот пример

Спасибо за чтение. Я предоставляю высококачественные статьи без BS. Если понравилось хлопайте и подписывайтесь на письма.

Если вы готовитесь к интервью по javascript и его фреймворку, я написал статьи по вопросам (act.js, vue.js, HTML и CSS), которые мне задавали во время интервью.

Ниже приведены ссылки: