Sobes.tech
Junior

Čo robí metóda freeze v JavaScripte?

sobes.tech AI

Odpoveď od AI

Metóda Object.freeze() zamrazuje objekt, zabraňuje pridávaniu nových vlastností, odstraňovaniu existujúcich a zmenám hodnôt existujúcich vlastností. Taktiež zabraňuje zmene prototypu objektu. Zamrznutý objekt zostáva nezmenený.

Použitie Object.freeze():

  1. Vytváranie konštantných objektov: Zaručuje, že objekt nebude v ďalšom kóde zmenený.
  2. Zlepšenie výkonu: Niektoré JavaScriptové motory ľahšie optimalizujú prístup k nemenným objektom.
  3. Bezpečnosť: Chráni vnútorné údaje objektu pred náhodnými alebo škodlivými zmenami.

Dôležitá poznámka: Object.freeze() zamrazuje iba povrchovo (plytké zamrazenie). Ak vlastnosti objektu odkazujú na iné objekty, tieto vnorené objekty môžu byť zmenené, ak neboli osobitne zamrazené.

Príklad:

const obj = {
  prop1: 42,
  prop2: {
    nestedProp: 'hello'
  }
};

Object.freeze(obj);

// Pokusy o zmenu budú ignorované v "strikt režime"
// V nestrikt režime nemusia spôsobovať chybu, ale zmeny sa neuskutočnia
obj.prop1 = 100; // Nezmení sa
delete obj.prop1; // Nezmaže sa
obj.newProp = 'world'; // Nepridá sa

console.log(obj.prop1); // 42
console.log(obj.newProp); // undefined

// Vnorený objekt NIE je zamrazený
obj.prop2.nestedProp = 'goodbye'; // Zmení sa
console.log(obj.prop2.nestedProp); // goodbye