Публикации по теме 'shallow-copy'


Различные методы объединения объектов в JavaScript
Shallow merge и deep merge — два метода объединения объектов. Существует потенциальная опасность выполнения поверхностного слияния вместо глубокого слияния, поэтому вам нужно использовать его с умом. Метод Object.assign() позволяет копировать все перечисляемые собственные свойства из одного или нескольких исходных объектов в целевой объект и возвращать целевой объект. Ниже приведен пример метода Object.assign() . В приведенном выше примере Object.assign изменил наш объект..

Использование «structuredClone API» для глубокого копирования в браузерах
Довольно сложно решить проблему копирования или клонирования в программировании. Во-первых , вам нужно понять, что понятия "значение" и "память" разделены. Языки программирования имеют свою собственную систему типов данных, которую можно разделить на две части. «Типы значений» и «Ссылочные типы». Данные с введенным значением всегда сохраняются в новой памяти при копировании. Когда данные ссылочного типа копируются, копируется только адрес памяти, так что и исходная переменная, и..

Вау Javascript
Массив.at Метод массива `at` может возвращать элемент в любой позиции. const a = [1,2,3,4,5] Раньше, чтобы найти последний элемент массива, мы делали: a[a.length -1] ---> 5 Вместо этого мы можем использовать at a.at[-1] ---> 5 a.at[-2] ---> second last element 4 структурированный клон Javascript structuredClone используется для глубокого копирования объекта. const a = { name: "Edwin", weapons: { main: "sword", alt: "knife"} }..

Ограничения оператора спреда
Я потратил несколько часов на отслеживание неуловимой ошибки, которая была бы обнаружена гораздо раньше, если бы я знал об ограничениях оператора распространения при создании отдельной ссылки для массива. Немного предыстории проблемы. Я занимался рефакторингом виджета на нашем сайте, используемого для создания пользователей, который включает компонент Selection для выбора команд для этого пользователя. Команды сохранялись как Set team_id в пользовательском объекте , который включал..

Мелкие и глубокие копии в JavaScript
За время работы с JavaScript я пришел к выводу, что язык ведет себя как поддакивающий человек, часто позволяя вам создавать и запускать функцию за функцией, не поднимая тревоги. Не обманывайтесь отсутствием красного цвета на консоли — то, что не было выдвинуто никаких возражений, не означает, что под капотом все так, как ожидалось. Чтобы продемонстрировать, что я имею в виду, давайте рассмотрим быстрый пример: let a = 1 let b = a console.log(a) console.log(b) a = 2 console.log(a)..

Правильное копирование объекта в JavaScript.
Вы когда-нибудь были в ситуации, когда вам приходилось присваивать новую переменную другой переменной, которая имеет ссылку на объект, чтобы сделать его копию, и пытались изменить какое-либо его свойство, но понимали, что это влияет и на исходный объект? let person = {name: "Senmi"} let copyOfPerson = person copyOfPerson.name = "Senmikha" console.log(person.name) // Senmikha Вы знаете, почему это происходит в первую очередь? Ответ в самом вопросе. Посмотрите над..

Поверхностное копирование против глубокого копирования в Javascript
Не попадайтесь на этот каверзный вопрос интервью! В приведенном ниже примере объект объявлен как переменная x. Затем переменной y присваивается значение x. Значение y.a, которое изначально было 1, затем переназначается как 2. Каков будет результат console.log(x.a)? let x = {a:1, b:2, c:{nestedA:1, nestedB:2}, d:4} let y = x y.a = 2 console.log(x.a) Если ваш ответ был 2, вы правы. Причина этого в том, что y не является копией x: y напрямую ссылается на тот же объект, на который..