Middle
Milyen objektum klónozási módszereket ismersz?
sobes.tech MI
Válasz az MI-től
A JavaScript-ben többféle módon lehet objektumokat klónozni:
-
Felszíni másolat (shallow copy) — csak a legfelső szintű tulajdonságokat másolja, a beágyazott objektumok hivatkozásként maradnak.
- Az
Object.assign()használatával:const clone = Object.assign({}, original); - Spread operátor:
const clone = {...original};
- Az
-
Mély másolat (deep copy) — az objektum teljes másolatát készíti az összes beágyazott objektummal együtt.
- JSON szerializáció és deszerializáció (csak egyszerű, függvényeket, dátumokat nem tartalmazó objektumokhoz):
const deepClone = JSON.parse(JSON.stringify(original)); - Különleges könyvtárak, például
lodashhasználata:const _ = require('lodash'); const deepClone = _.cloneDeep(original);
- JSON szerializáció és deszerializáció (csak egyszerű, függvényeket, dátumokat nem tartalmazó objektumokhoz):
-
Saját klónozó metódus implementálása — ha az objektum metódusokat vagy összetettebb típusokat tartalmaz, akkor a osztályon belül implementálható egy
clone()metódus.
A módszer kiválasztása az objektum szerkezetétől és a másolási követelményektől függ. Egyszerű objektumok esetén elegendő a felszíni másolat, összetettebb esetekben a mély másolat ajánlott.