Junior
Mida teeb meetod freeze JavaScriptis?
sobes.tech AI
Vastus AI-lt
Object.freeze() meetod jäädvustab objekti, takistades uute omaduste lisamist, olemasolevate kustutamist ja väärtuste muutmist. Samuti takistab objekti prototüübi muutmist. Jäädvustatud objekt jääb muutumatuks.
Object.freeze() rakendamine:
- Püsivate objektide loomine: Tagab, et objekt ei muutu hilisemas koodis.
- Tulemuslikkuse parandamine: Mõned JavaScripti mootorid optimeerivad kättesaadavust muutumatutele objektidele lihtsamalt.
- Turvalisus: Kaitseb objekti sisemisi andmeid juhuslike või pahatahtlike muudatuste eest.
Oluline märkus: Object.freeze() jäädvustab ainult pinnapealselt (lame jäädvustus). Kui objekti omadused viitavad teistele objektidele, võivad need sisemised objektid muutuda, kui neid eraldi ei jäädvustata.
Näide:
const obj = {
prop1: 42,
prop2: {
nestedProp: 'hello'
}
};
Object.freeze(obj);
// Katsed muuta neid "rangelt režiimis" ignoreeritakse
// Rangelt režiimis võivad need mitte põhjustada viga, kuid muudatused ei toimu
obj.prop1 = 100; // Ei muutu
delete obj.prop1; // Ei kustuta
obj.newProp = 'world'; // Ei lisandu
console.log(obj.prop1); // 42
console.log(obj.newProp); // undefined
// Sisemine objekt EI ole jäädvustatud
obj.prop2.nestedProp = 'goodbye'; // Muudetakse
console.log(obj.prop2.nestedProp); // goodbye