Junior
Co dělá metoda freeze v JavaScriptu?
sobes.tech AI
Odpověď od AI
Metoda Object.freeze() zamrazí objekt, zabranuje dodavanja novih vlastitosti, brisanja postojećih i promjene vrijednosti postojećih svojstava. Također sprječava promjenu prototipa objekta. Zamrznuti objekt ostaje nepromijenjen.
Primjena Object.freeze():
- Stvaranje konstantnih objekata: Jamstvo da se objekt neće mijenjati u kasnijem kodu.
- Poboljšanje performansi: Neki JavaScript motori lakše optimiziraju pristup nemodificiranim objektima.
- Sigurnost: Zaštita unutarnjih podataka objekta od slučajnih ili zlonamjernih promjena.
Važna napomena: Object.freeze() zamrzava samo površinski (plitko zamrzavanje). Ako svojstva objekta referenciraju na druge objekte, ti ugniježđeni objekti mogu biti izmijenjeni ako nisu zasebno zamrznuti.
Primjer:
const obj = {
prop1: 42,
prop2: {
nestedProp: 'hello'
}
};
Object.freeze(obj);
// Pokušaji promjena bit će ignorirani u "strogo režimu"
// U nestriktnom režimu, oni možda neće izazvati pogrešku, ali promjene neće biti izvršene
obj.prop1 = 100; // Neće se promijeniti
delete obj.prop1; // Neće biti obrisano
obj.newProp = 'world'; // Neće biti dodano
console.log(obj.prop1); // 42
console.log(obj.newProp); // undefined
// Ugniježđeni objekt NIJE zamrznut
obj.prop2.nestedProp = 'goodbye'; // Bit će promijenjeno
console.log(obj.prop2.nestedProp); // goodbye