Sobes.tech
Middle

Obyektlarni klonlashning qanday usullarini bilasiz?

sobes.tech AI

AIdan javob

JavaScriptda obyektlarni klonlashning bir nechta usullari mavjud:

  1. Yuzaki nusxa (shallow copy) — faqat yuqori darajadagi xususiyatlarni nusxalaydi, ichki obyektlar havola sifatida qoladi.

    • Object.assign() dan foydalanish:
      const clone = Object.assign({}, original);
      
    • Tarqalish operatori:
      const clone = {...original};
      
  2. Chuqur nusxa (deep copy) — obyektning to‘liq nusxasini, barcha ichki obyektlar bilan birga yaratadi.

    • JSON yordamida seriyalash va deserializatsiya (faqat oddiy obyektlar uchun, funksiyalar, sanalar va boshqalar bo‘lmagan):
      const deepClone = JSON.parse(JSON.stringify(original));
      
    • Maxsus kutubxonalar, masalan lodash:
      const _ = require('lodash');
      const deepClone = _.cloneDeep(original);
      
  3. O‘z klonlash metodini yozish — agar obyekt metodlar yoki murakkab turlarni o‘z ichiga olsa, sinf ichida clone() metodini yozish mumkin.

Usul tanlovi obyektning tuzilishi va nusxa olish talablariga bog‘liq. Oddiy obyektlar uchun yuzaki nusxa yetarli, murakkablar uchun chuqur nusxa afzal.