Wie kann ich in JavaScript eine schreibgeschützte/unveränderliche Version eines Objekts erstellen, dessen Eigenschaften nicht geändert werden können? Dies sollte auch für die Eigenschaften aller Untergebenen Objekte und so weiter gelten.
Alle Methoden, auf die ich gestoßen bin (Object.defineProperty
, Object.freeze
, usw.) funktionieren nur für die obersten Ebenen des Objekts, nicht aber für die Unterobjekte.
(Ein möglicher Anwendungsfall: Nachdem Sie ein Einstellungen
oder Konfiguration
Typ-Objekt in einem bestimmten Modul erstellt/geändert haben, müssen Sie es im unveränderlichen Zustand den anderen Modulen des Programms zugänglich machen.)