Sobes.tech
Junior

Šta radi metoda freeze u JavaScriptu?

sobes.tech АИ

Одговор од АИ

Metoda Object.freeze() zamrzava objekt, sprečavajući dodavanje novih svojstava, brisanje postojećih i promenu vrednosti postojećih svojstava. Takođe sprečava promenu prototipa objekta. Zamrznuti objekat ostaje nepromenjen.

Primena Object.freeze():

  1. Kreiranje konstantnih objekata: Garantuje da objekat neće biti izmenjen u kasnijem kodu.
  2. Poboljšanje performansi: Neki JavaScript motori lakše optimizuju pristup nemodifikovanim objektima.
  3. Sigurnost: Štiti interne podatke objekta od slučajnih ili zlonamernih promena.

Važna napomena: Object.freeze() zamrzava samo površinski (plitko zamrzavanje). Ako svojstva objekta referenciraju na druge objekte, ti ugnježdeni objekti mogu biti izmenjeni ako nisu posebno zamrznuti.

Primer:

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

Object.freeze(obj);

// Pokušaji izmene će biti ignorisani u "strogoj režimu"
// U nestriktnom režimu, oni možda neće izazvati grešku, ali izmene neće biti izvršene
obj.prop1 = 100; // Neće se promeniti
delete obj.prop1; // Neće biti obrisano
obj.newProp = 'world'; // Neće biti dodato

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

// Ugnježdeni objekat NIJE zamrznut
obj.prop2.nestedProp = 'goodbye'; // Biće izmenjeno
console.log(obj.prop2.nestedProp); // goodbye