Sobes.tech
Junior

Mit csinál a freeze metódus JavaScriptben?

sobes.tech MI

Válasz az MI-től

Az Object.freeze() metódus lefagyaszt egy objektumot, megakadályozva új tulajdonságok hozzáadását, meglévők törlését és értékeik módosítását. Emellett megakadályozza az objektum prototípusának módosítását is. A lefagyasztott objektum változatlan marad.

Az Object.freeze() alkalmazása:

  1. Állandó objektumok létrehozása: Biztosítja, hogy az objektum a későbbi kódban ne változzon.
  2. Teljesítmény növelése: Néhány JavaScript motor könnyebben optimalizálja a változatlan objektumokhoz való hozzáférést.
  3. Biztonság: Védi az objektum belső adatait a véletlen vagy rosszindulatú módosításoktól.

Fontos megjegyzés: Az Object.freeze() csak felületesen (sima lefagyasztás) fagyaszt. Ha az objektum tulajdonságai más objektumokra mutatnak, ezek az alárendelt objektumok módosíthatók, ha nem lettek külön lefagyasztva.

Példa:

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

Object.freeze(obj);

// A módosítási kísérletek "szigorú módban" figyelmen kívül maradnak
// Nem szigorú módban nem okozhatnak hibát, de a változtatások nem történnek meg
obj.prop1 = 100; // Nem fog változni
delete obj.prop1; // Nem fog törlődni
obj.newProp = 'world'; // Nem fog hozzáadódni

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

// Az alárendelt objektum NEM van lefagyasztva
obj.prop2.nestedProp = 'goodbye'; // Meg fog változni
console.log(obj.prop2.nestedProp); // goodbye