🪟 Windows TippsThe Gemini desktop app is now available for Windows(11.09.2026 um 17:06 Uhr)
🪟 Windows TippsHeader and Footer not showing in Excel(14.09.2026 um 22:43 Uhr)
🕵️ SicherheitslückenBurn Out, Or Fade Away(14.09.2026 um 14:25 Uhr)
🪟 Windows TippsKB5129194 Windows 11 26H1 Out of Band Update - Deskmodder.de(14.09.2026 um 19:25 Uhr)
🪟 Windows TippsThe Gemini desktop app is now available for Windows(11.09.2026 um 17:06 Uhr)
🪟 Windows TippsHeader and Footer not showing in Excel(14.09.2026 um 22:43 Uhr)
🕵️ SicherheitslückenBurn Out, Or Fade Away(14.09.2026 um 14:25 Uhr)
🪟 Windows TippsKB5129194 Windows 11 26H1 Out of Band Update - Deskmodder.de(14.09.2026 um 19:25 Uhr)

🔧 Programmierung 🕛 vor 1 Jahr 3 Min Lesezeit
0

JavaScript Object - Shallow freeze vs Deep freeze

↗ Quelle (dev.to)
🗣️ Stimme:
📑 Inhaltsübersicht

The difference between shallow freeze and deep freeze lies in how the freezing behavior is applied to nested objects. Here’s a breakdown of the two concepts:









1. Shallow Freeze





  • Definition: Freezes only the top-level properties of an object.


  • Behavior:


    • Prevents adding, removing, or modifying the top-level properties.

    • Does not freeze nested objects; they remain mutable.








  • Example:





CODE
const shallowObject = {
name: "Alice",
details: { age: 25, city: "New York" },
};

Object.freeze(shallowObject);

// Top-level properties are immutable
shallowObject.name = "Bob"; // Ignored
shallowObject.newProp = "test"; // Ignored

// Nested objects are still mutable
shallowObject.details.age = 30; // Allowed

console.log(shallowObject);
// Output: { name: "Alice", details: { age: 30, city: "New York" } }












2. Deep Freeze





  • Definition: Freezes the object along with all its nested objects and arrays, recursively.


  • Behavior:


    • Ensures that no part of the object (top-level or nested) can be modified.








  • Example:





CODE
const deepObject = {
name: "Alice",
details: { age: 25, city: "New York" },
};

// Deep freeze function
function deepFreeze(object) {
const propertyNames = Object.getOwnPropertyNames(object);
for (const name of propertyNames) {
const value = object[name];
if (value && typeof value === 'object') {
deepFreeze(value); // Recursively freeze
}
}
return Object.freeze(object);
}

deepFreeze(deepObject);

// Neither top-level nor nested properties can be changed
deepObject.name = "Bob"; // Ignored
deepObject.details.age = 30; // Ignored

console.log(deepObject);
// Output: { name: "Alice", details: { age: 25, city: "New York" } }












Comparison Table

































Feature Shallow Freeze Deep Freeze
Scope Only freezes top-level properties. Freezes top-level and nested objects.
Nested Object Mutability Mutable. Immutable.
Implementation
Object.freeze(object).
Custom recursive function with Object.freeze().
Example Mutation Modifications to nested objects are allowed. No modifications allowed at any level.








Use Cases





  1. Shallow Freeze:




    • Suitable when only the top-level properties need to be immutable.

    • Examples: Configurations where nested properties are managed independently.




  2. Deep Freeze:




    • Ideal when complete immutability is required for the entire object hierarchy.

    • Examples: Ensuring data consistency for deeply nested objects in state management.








Considerations





  • Performance:


    • Deep freezing can be computationally expensive for large or deeply nested objects.








  • Cyclic References:


    • If the object contains circular references, you'll need to track visited objects to avoid infinite recursion.











Handling Cyclic References



To handle cyclic references, you can maintain a WeakSet of visited objects:




CODE
function deepFreeze(object, visited = new WeakSet()) {
// If the object is already visited, return it
if (visited.has(object)) return object;

// Add the object to the visited set
visited.add(object);

// Retrieve property names
const propertyNames = Object.getOwnPropertyNames(object);

// Freeze each property
for (const name of propertyNames) {
const value = object[name];
if (value && typeof value === 'object') {
deepFreeze(value, visited);
}
}

return Object.freeze(object);
}






This prevents infinite recursion for cyclic references.

Vollständiger Original-Bericht
Ausführliche Details, Code-Beispiele & Hersteller-Stellungnahme auf dev.to.
↗ Original-Artikel auf dev.to lesen
Wie bewertest du diesen Beitrag?
1 Klick Feedback
Teilen mit Netzwerk & Team:

Community-Analysen & Experten-Meinungen 0

Verfasse deine eigene Analyse, teile Workarounds oder diskutiere diesen Vorfall im Blog.
Noch keine Community-Analyse verfasst. Markiere einen Textabschnitt oder klicke oben auf Eigene Analyse verfassen“!
Community Pulse: Relevanz-Einschätzung
1 Klick Experten-Votum
🔴 Akute Relevanz 0%
🟡 In Evaluierung 0%
🟢 Keine Auswirkung 0%
Spannende Innovation 0%
Verwandte Story-Cluster & Quellen (Vektor-KI)
Port 8095 Engine
1 Quelle
The Gemini desktop app is now available for Windows
1 Quelle
Header and Footer not showing in Excel
1 Quelle
Burn Out, Or Fade Away
Ähnliche Beiträge
🔍 Verwandte News

Auch interessante Nachrichten JavaScript Object - Shallow freeze vs Deep freeze

Thematisch verwandte Begriffe: JavaScript, Object, Shallow, freeze · 6 Treffer

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...

Laden...

Beiträge werden geladen ...

Laden...

Videos werden geladen ...