Junior
Ką daro freeze metodas JavaScript?
sobes.tech AI
Atsakymas iš AI
Object.freeze() metodas užšaldys objektą, užkertant kelią naujų savybių pridėjimui, esamų ištrynimui ir esamų savybių reikšmių keitimui. Taip pat jis užkerta kelią objekto prototipo keitimui. Užšaldytas objektas lieka nepakitęs.
Object.freeze() taikymas:
- Sukurti pastovius objektus: Garantuoja, kad objektas nebus pakeistas vėlesniame kode.
- Našumo gerinimas: Kai kurie JavaScript varikliai lengviau optimizuoja nepakitusius objektus.
- Saugumas: Apsaugo objekto vidinius duomenis nuo atsitiktinių ar kenkėjiškų pakeitimų.
Svarbi pastaba: Object.freeze() užšaldys tik paviršutiniškai (plokščias užšaldymas). Jei objekto savybės nuorodo į kitus objektus, šie įdėti objektai gali būti pakeisti, jei jie patys nebuvo atskirai užšaldyti.
Pavyzdys:
const obj = {
prop1: 42,
prop2: {
nestedProp: 'hello'
}
};
Object.freeze(obj);
// Bandymų keisti bus ignoruojama "griežtame režime"
// Nestriktame režime jie gali nesukelti klaidos, bet pakeitimai neįvyks
obj.prop1 = 100; // Nepasikeis
delete obj.prop1; // Neištrins
obj.newProp = 'world'; // Nepasieks
console.log(obj.prop1); // 42
console.log(obj.newProp); // undefined
// Įdėtas objektas NEUŽŠALDYTAS
obj.prop2.nestedProp = 'goodbye'; // Pakeis
console.log(obj.prop2.nestedProp); // goodbye