Junior
JavaScriptda freeze metodi nima qiladi?
sobes.tech AI
AIdan javob
Object.freeze() usuli ob'ektni muzlatadi, yangi xususiyatlar qo'shilishini, mavjudlarining o'chirilishini va qiymatlarini o'zgartirishni oldini oladi. Shuningdek, ob'ektning prototipini o'zgartirishni ham to'xtatadi. Muzlatilgan ob'ekt o'zgarmas qoladi.
Object.freeze() ning qo'llanilishi:
- Doimiy ob'ektlar yaratish: Ob'ekt keyingi kodda o'zgartirilmasligini kafolatlaydi.
- Ishlash tezligini oshirish: Ba'zi JavaScript motorlari, o'zgarmas ob'ektlarga kirishni optimallashtirishni osonroq topadi.
- Xavfsizlik: Ob'ektning ichki ma'lumotlarini tasodifiy yoki zararli o'zgarishlardan himoya qiladi.
Muhim eslatma: Object.freeze() faqat sathiy (yuzaki) muzlatishni amalga oshiradi. Agar ob'ektning xususiyatlari boshqa ob'ektlarga havolalar bo'lsa, bu ichki ob'ektlar o'zgartirilishi mumkin, agar ular alohida muzlatilmagan bo'lsa.
Misol:
const obj = {
prop1: 42,
prop2: {
nestedProp: 'hello'
}
};
Object.freeze(obj);
// O'zgartirishga urinishlar "qattiq rejim"da e'tiborsiz qoldiriladi
// Qattiq rejimda bo'lmagan holatda, ular xato keltirmasligi mumkin, lekin o'zgarishlar amalga oshmaydi
obj.prop1 = 100; // O'zgarmaydi
delete obj.prop1; // O'chirilmaydi
obj.newProp = 'world'; // Qo'shilmaydi
console.log(obj.prop1); // 42
console.log(obj.newProp); // undefined
// Ichki ob'ekt muzlatilmagan
obj.prop2.nestedProp = 'goodbye'; // O'zgartiriladi
console.log(obj.prop2.nestedProp); // goodbye