#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));