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():
- Vytváranie konštantných objektov: Zaručuje, že objekt nebude v ďalšom kóde zmenený.
- Zlepšenie výkonu: Niektoré JavaScriptové motory ľahšie optimalizujú prístup k nemenným objektom.
- 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