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():
- Kreiranje konstantnih objekata: Garantuje da objekat neće biti izmenjen u kasnijem kodu.
- Poboljšanje performansi: Neki JavaScript motori lakše optimizuju pristup nemodifikovanim objektima.
- 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