Как скопировать объект в JavaScript? / Поверхностное и глубокое копирование

แชร์
ฝัง
  • เผยแพร่เมื่อ 23 ก.ค. 2024
  • В этом видео обсудим объекты в JavaScript и разберёмся как их копировать. Разберём на практике поверхностное копирование (shallow copy) и глубое копирование (deep clone). Узнаем в чём разница и на что следует обращать внимание. Ну и конечно посмотрим на современный способ копирования объектов.
    Содержание:
    00:00 Введение
    01:15 Про переменные в JS
    03:35 Память и объекты
    07:34 Сравниваем объекты
    08:52 Виды копирования
    09:26 Поверхностное копирование (shallow-copy)
    10:37 Как сделать поверхностную копию объекта?
    15:08 Копирование объекта с помощью Object.assign()
    17:26 Глубокое копирование объекта
    18:08 Сериализация и десериализация объекта
    19:33 JSON.stringify и JSON.parse на практике
    22:09 Проверяем результаты копирования с помощью сериализации/десериализации
    24:14 А что с вложенным объектом?
    24:34 Свойство undefined пропало
    25:55 Итоги по stringify / parse
    26:49 lodash
    28:00 cloneDeep на практике
    32:05 Итоги cloneDeep
    33:45 structuredClone()
    36:11 structuredClone на практике
    38:08 Итоги. Когда и что использовать
    Полезные ссылки:
    * Мой блог в Telegram: t.me/antonovjs
    * Оператор spread: developer.mozilla.org/ru/docs...
    * Метод Object.assign: developer.mozilla.org/en-US/d...
    * Библиотека Lodash: lodash.com
    * Метод structuredClone: developer.mozilla.org/en-US/d...

ความคิดเห็น • 35

  • @eldardusmuratov9081
    @eldardusmuratov9081 15 วันที่ผ่านมา +1

    Круто, что спецификация неустанно развивается! Всё как в Ableton Live, с каждым годом всё удобнее!
    Спасибо за видео!

  • @vladfolk2418
    @vladfolk2418 หลายเดือนก่อน +1

    Супер! Огромное спасибо! Мало того, что все наконец в голове уложил, так ещё и новое узнал!

  • @nolightnohope3302
    @nolightnohope3302 หลายเดือนก่อน +1

    Огромное спасибо за объяснение! всё очень структурировано и понятно.
    Всё-таки по одному learn JS не поймёшь, даже если несколько раз перечитаешь главу, надо и другие источники смотреть

  • @verrtiga1342
    @verrtiga1342 8 หลายเดือนก่อน +4

    Игорь спасибо огромное, смотрю ваши видео очень часто, проходил профессию фронтенд разработчика в академии, щас пошел на профессию js, ваши видосы очень помогают)

    • @antonov_i
      @antonov_i  8 หลายเดือนก่อน +1

      Спасибо за поддержку!

  • @vlad-zf1ev
    @vlad-zf1ev 10 หลายเดือนก่อน +5

    супер!! отличное видео, которое показывает самую суть способов и методов создания копии!

  • @user-he7sp9ik1q
    @user-he7sp9ik1q ปีที่แล้ว +5

    Отлично! В ts тож работает!

    • @antonov_i
      @antonov_i  ปีที่แล้ว +3

      А вот следующее видео отроет серию видосиков по TS 🙂

    • @user-he7sp9ik1q
      @user-he7sp9ik1q ปีที่แล้ว +2

      @@antonov_i Давно пора

  • @ekru12
    @ekru12 ปีที่แล้ว +5

    Круто, всё по винтикам рассказал и показал. Только для новичка еще непонятно, что массив - это тоже объект. Хорошо бы в кликбейте и в названии это отразить.

    • @antonov_i
      @antonov_i  ปีที่แล้ว +2

      Спасибо! Скоро будет отдельное видео по типам данных и вот там про это отдельно расскажу.

    • @andrewsam224
      @andrewsam224 ปีที่แล้ว

      @@antonov_i опа тема огонь, уже приближаемся к TS, это хорошо.

  • @alecherkas9633
    @alecherkas9633 5 หลายเดือนก่อน +2

    Как же понятно всё и какая грамотная речь. Спасибо вам огромное!

  • @andrewsam224
    @andrewsam224 ปีที่แล้ว +3

    Игорь, заранее лайк , видос потом посмотрю.

  • @risenwindgaming8039
    @risenwindgaming8039 4 หลายเดือนก่อน +1

    Спасибо, Игорь! Отличное видео. Хочется так же круто разбираться в программировании)

  • @asifabbasov3801
    @asifabbasov3801 6 หลายเดือนก่อน +1

    Очень рад что нашел тебя
    Объясняешь все просто и понятно
    Спасибо тебе

  • @user-wp5vr3kj7p
    @user-wp5vr3kj7p 10 หลายเดือนก่อน +3

    Отличный материал )

  • @vlad_pantyukhin
    @vlad_pantyukhin 2 หลายเดือนก่อน +1

    Отличное видео! Успехов в развитии канала)

  • @antonkleshnev5342
    @antonkleshnev5342 ปีที่แล้ว +3

    Спасибо за вашу работу) Очень приятное и доходчивое объяснение!)

  • @andrewsam224
    @andrewsam224 6 หลายเดือนก่อน +1

    Годнота!!!!! Огонь!!! Спасибо!!!!!

  • @danilaa1111
    @danilaa1111 21 วันที่ผ่านมา

    выбрал своим первым ЯП JavaScript, в академии взяли фуллстак. я капец запутался, вроде понятно объясняете, а вроде я ничего не понял)) надеюсь опыта наберу и ещё разок посмотрю)

    • @antonov_i
      @antonov_i  19 วันที่ผ่านมา

      Не переживайте, со временем всё получится. Главное практиковаться 🙌

  • @andrewsam224
    @andrewsam224 ปีที่แล้ว +3

    Игорь, сделай видео про обработчики событий!! Как их правильно навешивать и снимать. Спасибо.

    • @user-hf2oj8ep5l
      @user-hf2oj8ep5l ปีที่แล้ว +2

      поддерживаю, интересует какие обработчики можно снимать (слышала мнения: нужно снимать обработчики только с документа: снимать нужно все обработчики элементов, которым присвоен класс hidden) , а также как снимать обработчик, если в колбэк нам нужно передать аргументы, то есть вариант с анонимной функцией-оберткой не подойдет

    • @andrewsam224
      @andrewsam224 ปีที่แล้ว +1

      @@user-hf2oj8ep5l согласен с тобой, полностью поддерживаю!!! Надеюсь Игорь поможет и прольёт свет на эту тему!!!! Обработка событий и иже с ними...

    • @antonov_i
      @antonov_i  ปีที่แล้ว +3

      Про работу с событиями обязательно сделаю. Сейчас готовлю материалы по TypeScript. Попробую сделать и про работу с событиями. Только вернулся с небольшого отпуска, силы восполнились, можно вступать в новую гонку 🙂

    • @andrewsam224
      @andrewsam224 ปีที่แล้ว

      @@antonov_i Побольше ТypeScript!!! Спасибо Игорь!!!!

    • @andrewsam224
      @andrewsam224 ปีที่แล้ว +2

      @@antonov_i А где отдыхали если не секрет? Надеюсь, всё было хорошо ждём новых видео от отдохнувшего и вдохновлённого нашего Наставника!!!

  • @avatarpw6218
    @avatarpw6218 7 หลายเดือนก่อน +3

    Игорь привет, я твой твой подписчик. Сейчас учусь в Яндексе на фронт разработчика, посоветуй книгу которую первую надо обязательно прочитать) и модно даже несколько) Спасибо

    • @antonov_i
      @antonov_i  7 หลายเดือนก่อน +2

      Привет! Про многие хорошие книги по JS рассказал здесь: Что почитать / Большой обзор книг по JavaScript
      th-cam.com/video/oard0meN3fA/w-d-xo.html. Рекомендую в обязательном порядке прочитать книги Кайла Симпсона.

  • @Randelll
    @Randelll 9 หลายเดือนก่อน +2

    как выполнять код в VSC?

    • @antonov_i
      @antonov_i  9 หลายเดือนก่อน

      Я пользуюсь расширением Code Runner marketplace.visualstudio.com/items?itemName=formulahendry.code-runner

  • @user-bf8sh3nn5y
    @user-bf8sh3nn5y 3 หลายเดือนก่อน

    Инфу которую можно объяснить за 2 мин растянул на 40 красава