СЕРЬЕЗНО БЛЯДЬ?https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign#Deep_CloneВы совсем ебанулись? Как этот мусор вообще еще живет, этот пример просто блядь взрывает воображение. Это не язык - это ебанный мусор.Как этот мусор вообще взлетел? Когда он сдохнет нахуй?бампаю пару раз и иду в /g/опоту куколдчана
>>210630884в этой параше что бы полностью склонировать обьект нужно его перевести в строчку и потом обратно
>>210630977>For deep cloning, we need to use alternatives because Object.assign() copies property values. If the source value is a reference to an object, it only copies that reference value.
>>210630977Это один из быстрых вариантов, можешь сам написать метод в своем объекте который будет копировать вложенные объекты.
>>210631264```const a = {a: {a: 0}}}const b = Object.assign({}, a)a.a.a = 5;console.log(b.a.a) // 5```
>>210631383>memcpyчто мемсру? напиши пример с созданием объекта, в котором содержатся указатели на другой объект и его клонированием
>>210631515>>210631431Ну я вообще пурсишник, о ++ почти ничего не знаю.Но там вроде надо пистаь свой метод вроде конструктора, только клонирующий. Т.к. при конструкции объекта могут производится доебени разных действий, результаты которых не находятся в самом объекте.С мемкопи ты моментально хуев полную щеку наберешь.
>>210630596 (OP)>Как этот мусор вообще еще живет, этот пример просто блядь взрывает воображение.Дохуя сайтов на нем написано если его поменять то все придется переписывать но бизнесу это не выгодно. Я не понимаю почему не запилили второй скриптовый язык в браузер который бы включался в зависимости от того на каком языке написан сайт.
JSON.parse(JSON.stringify(object))Тоже не ответ, он может поменять тип new Date() с Date на stringЛучше пользоваться дополнительными библиотеками или решить вручную через рекурсию
>>210630596 (OP)Ну на самом деле он вполне логичный и судя по всему абсолютно универсальный. Я даже хуй знает как это теоретически можно сделать иначе, не имея огромного оверхеда из подсистем самого языки и рантайма.Но я мимохуй любитель.
>>210631942Они только упрощают разработку что бы не проебатся с типами браузер все так же работает на тормознутом JS.
>>210632039В данном контексте дополнительный багаж, не требующийся напрямую для решения основной проблемы, но использющийся в нем.
>>210631760ну есть васм, но он пока что пиздец тормознутый, может в будущем его допилят и можнт будет нормально юзать
>>210631338Если тебе нужен именно deep clone то писать метод для такого копирования.Я хз чего об бомбанул такое поведение почти везде.
>>210632496КАК ЖЕ ЗАЕБАЛИ НЕГРАМОТНЫЕ ДЕБИЛЫ, КОТОРЫЕ ВСЮДУ ПИШУТ "ЧТОБЫ" ВМЕСТО "ЧТО БЫ"КАК ЖЕ ЗАЕБАЛИ НЕГРАМОТНЫЕ ДЕБИЛЫ, КОТОРЫЕ ВСЮДУ ПИШУТ "ЧТО БЫ" ВМЕСТО "ЧТОБЫ"
>>210632300Тогда программистов не так много было и люди годами работали в компаниях, когда рынок начал расти новичкам было тяжело вкатываться в существующий проект, потому придумали ооп что бы люди могли хоть немного разобраться в чужом говнокоде.
>>210630596 (OP)Так это хак же, если объект совсем простой - можно воспользоваться, функции он всё равно не сериализует, так что на практике даже такой хак далеко не всегда подходит. Сырой js сейчас нигде не используются, обычно юзают всякие иммутабельные библиотеки, типа immer или immutable, где всё это уже реализовано. Ну и энивей, вместо нытья ты можешь написать свою реализацию через рекурсию, жс хорош своей универсальностью
>>210632239Ну почему-то подправить исходники linux kernel, например, не составляет большой проблемы. Или разобрать Emacs это, наверное, вообще 200МБ самого хакабельного кода из всего, что я видел в жизни, хотя это вообще допотопный Лисп, в котором даже локального пространства имен толком нет. На тех же крестах почему-то получаются сотни мегабайт лапши, одинаково противной и человеку, и машине.
>>210633435freeciv тоже на C, nginx это самый приятночитаемый код который я видел на C тоже на C. Очень много всего есть что написано на С без всяких ваших ооп
>>210633435>Ну почему-то подправить исходники linux kernel, например, не составляет большой проблемы.Скинь пример такого кода.
>>210632364https://ru.wikipedia.org/wiki/%D0%9F%D0%B0%D1%80%D0%B0%D0%B4%D0%B8%D0%B3%D0%BC%D0%B0_%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F
>>210634105>>210634219А как там указать, что вот этот объект копировать надо, а вот этот так и остается ссылкой?
>>210634123Нахуй ты тут список всевозможных парадигм перечисляешь? Тебе сказали, что альтернатив нет, а это значит, что все они продемонстрировали свою нежизнеспособность или в лучшем случаю заняли свою очень узкую нишу.
>>210635049> А как там указать, что вот этот объект копировать надо,#[Derive(Clone)]> а вот этот так и остается ссылкой?impl Clone for A { pub fn clone(&self) -> Self { Self { ptr: self.ptr } }}
>>210636171по идее еще должы быть аргументы для декларативного макроса derive(Clone)что-то типо #[direct], но тут я хз, никогда с таким не встречался
>>210630977это неправильный способ если что ты теряешь свойства непереводимые в JSON вроде Function(), Date(), Set(), Map()...
>>210630596 (OP)был лучшим языком во вселенной до 2016 ебучий es6 сейчас конечно франкинштейн чтоб он сдох впрочем до уебищности плюсов ему далеко