Потренил я JSON.parse(JSON.stringify()); Интересно получается... let girl = { name: 'Vlad', skills: { frontend: [], }, } let deepGirl = JSON.parse(JSON.stringify(girl)); console.log(girl.name === deepGirl.name); *вернёт true* console.log(girl.skills === deepGirl.skills); *вернёт false* Несмотря на то, что сравнение ОБЫЧНОГО СВОЙСТВА name вернёт true, изменение name в одном объекте НЕ ВЛЕЧЁТ изменения name в другом, т.е. глубокое копирование вроде как прошло, но сравнение обычного свойства === true. Баг что ли? :)
Ты хорошо отвечаешь на вопросы "что и что делает", но часто забываешь про вопрос "зачем" или "когда это нужно"
00:00:32 О копировании объектов
00:02:20 Object.assign()
00:09:57 JSON.stringify(), JSON.parse()
00:12:44 Object.keys(), Object.values(), Object.entries()
00:15:48 Object.fromEntries()
00:18:09 Итого
спасибо)
глубокое копирование при помощи Json выглядит как будто утвержденнный в спецификации костыль
Интересно. Спасибо!
Мне кажется лучше использовать в таких случаях spread
Отличное видео
спасибо!!! всё норм)))
Подскажите пожалуйста что ща расширение которое выводит в маленьком окошке информацию про введенный метод?
sps
кхм кхм кхм кхм кхм кхм
Потренил я JSON.parse(JSON.stringify());
Интересно получается...
let girl = {
name: 'Vlad',
skills: {
frontend: [],
},
}
let deepGirl = JSON.parse(JSON.stringify(girl));
console.log(girl.name === deepGirl.name);
*вернёт true*
console.log(girl.skills === deepGirl.skills); *вернёт false*
Несмотря на то, что сравнение ОБЫЧНОГО СВОЙСТВА name вернёт true, изменение name в одном объекте НЕ ВЛЕЧЁТ изменения name в другом, т.е. глубокое копирование вроде как прошло, но сравнение обычного свойства === true. Баг что ли? :)
думаю это тоже самое, если бы 'Vlad'==='Vlad' то есть в JS string is a primitive data type array not!