Цель {…JSON.parse(JSON.stringify(v))} в javascript

#javascript #node.js #javascript-objects

Вопрос:

Я новичок в node и JavaScript. Просматривая репозиторий, я нашел фрагмент

 const x = { ...JSON.parse(JSON.stringify(obj1)) };   

Я знаю, что JSON.parse(JSON.stringify()) это используется для клонирования объекта, но зачем здесь нужен оператор распространения?

Комментарии:

1. Я сбит с толку этим использованием. JSON.parse(JSON.stringify(obj)) уже глубоко копирует объект (с некоторыми оговорками), не уверен, зачем кому-то понадобилось дополнительно создавать неглубокую копию уже глубоко скопированного объекта

2. Это из «большой» библиотеки или из пользовательской (например, крошечный проект, собственная служебная библиотека)? В последнем случае я бы классифицировал это как что-то вроде недосмотра или как не продуманное, но что-то, что никогда никому не бросалось в глаза, потому что это не ошибка.

Ответ №1:

Неважно. Чтобы скобки были избыточными, достаточно пары разбор/строка

 const x = JSON.parse(JSON.stringify(obj1));