Middle
Obyektlarni klonlashning qanday usullarini bilasiz?
sobes.tech AI
AIdan javob
JavaScriptda obyektlarni klonlashning bir nechta usullari mavjud:
-
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};
-
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);
- JSON yordamida seriyalash va deserializatsiya (faqat oddiy obyektlar uchun, funksiyalar, sanalar va boshqalar bo‘lmagan):
-
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.