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

  1. Stvaranje konstantnih objekata: Jamstvo da se objekt neće mijenjati u kasnijem kodu.
  2. Poboljšanje performansi: Neki JavaScript motori lakše optimiziraju pristup nemodificiranim objektima.
  3. 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