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:
- Állandó objektumok létrehozása: Biztosítja, hogy az objektum a későbbi kódban ne változzon.
- Teljesítmény növelése: Néhány JavaScript motor könnyebben optimalizálja a változatlan objektumokhoz való hozzáférést.
- 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