Sobes.tech
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:

  1. 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};
      
  2. 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 lodash használata:
      const _ = require('lodash');
      const deepClone = _.cloneDeep(original);
      
  3. 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.