Junior
Wat doet de methode freeze in JavaScript?
sobes.tech AI
Antwoord van AI
De methode Object.freeze() bevriest een object, waardoor het niet mogelijk is om nieuwe eigenschappen toe te voegen, bestaande te verwijderen of de waarden van bestaande eigenschappen te wijzigen. Het voorkomt ook dat het prototype van het object wordt gewijzigd. Een bevroren object blijft onveranderd.
Toepassing van Object.freeze():
- Creëren van constante objecten: Garantie dat het object niet wordt gewijzigd in latere code.
- Verbetering van prestaties: Sommige JavaScript-engines vinden het gemakkelijker om toegang tot onveranderlijke objecten te optimaliseren.
- Veiligheid: Beschermt de interne gegevens van het object tegen per ongeluk of kwaadaardig wijzigen.
Belangrijke opmerking: Object.freeze() bevriest alleen oppervlakkig (shallow freeze). Als de eigenschappen van het object verwijzingen bevatten naar andere objecten, kunnen deze geneste objecten worden gewijzigd als ze niet apart zijn bevroren.
Voorbeeld:
const obj = {
prop1: 42,
prop2: {
nestedProp: 'hello'
}
};
Object.freeze(obj);
// Pogingen tot wijziging worden genegeerd in "strikte modus"
// In niet-strikte modus kunnen ze geen fout veroorzaken, maar de wijzigingen vinden niet plaats
obj.prop1 = 100; // Zal niet veranderen
delete obj.prop1; // Zal niet worden verwijderd
obj.newProp = 'world'; // Zal niet worden toegevoegd
console.log(obj.prop1); // 42
console.log(obj.newProp); // undefined
// Geneste objecten ZIJN NIET bevroren
obj.prop2.nestedProp = 'goodbye'; // Zal worden gewijzigd
console.log(obj.prop2.nestedProp); // goodbye