Sobes.tech
Junior

Was macht die Methode freeze in JavaScript?

sobes.tech KI

Antwort von AI

Die Methode Object.freeze() friert ein Objekt ein, verhindert das Hinzufügen neuer Eigenschaften, das Löschen bestehender und das Ändern der Werte bestehender Eigenschaften. Es verhindert auch, dass das Prototyp des Objekts geändert wird. Ein eingefrorenes Objekt bleibt unverändert.

Anwendung von Object.freeze():

  1. Erstellung konstanter Objekte: Gewährleistung, dass das Objekt im späteren Code nicht geändert wird.
  2. Leistungssteigerung: Einige JavaScript-Engines finden es einfacher, auf unveränderliche Objekte zu optimieren.
  3. Sicherheit: Schutz der internen Daten des Objekts vor versehentlichen oder böswilligen Änderungen.

Wichtiger Hinweis: Object.freeze() friert nur oberflächlich ein (flaches Einfrieren). Wenn Eigenschaften des Objekts Referenzen auf andere Objekte haben, können diese verschachtelten Objekte geändert werden, wenn sie nicht ebenfalls eingefroren wurden.

Beispiel:

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

Object.freeze(obj);

// Änderungsversuche werden im "strengen Modus" ignoriert
// Im nicht-strengen Modus können sie keine Fehler verursachen, aber Änderungen erfolgen nicht
obj.prop1 = 100; // Wird nicht geändert
delete obj.prop1; // Wird nicht gelöscht
obj.newProp = 'world'; // Wird nicht hinzugefügt

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

// Verschachteltes Objekt ist NICHT eingefroren
obj.prop2.nestedProp = 'goodbye'; // Wird geändert
console.log(obj.prop2.nestedProp); // goodbye