Sobes.tech
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:

  1. Püsivate objektide loomine: Tagab, et objekt ei muutu hilisemas koodis.
  2. Tulemuslikkuse parandamine: Mõned JavaScripti mootorid optimeerivad kättesaadavust muutumatutele objektidele lihtsamalt.
  3. 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