Публикации по теме '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 напрямую ссылается на тот же объект, на который..