Junior
JavaScriptте freeze ыкмасы эмне кылат?
sobes.tech AI
AIден жооп
Object.freeze() ыкмасы объектти муздатат, жаңы мүнөздөмөлөрдүн кошулушун, барларын өчүрүүнү жана бар мүнөздөмөлөрдүн маанилерин өзгөртүүнү алдын алат. Ал ошондой эле объекттин прототибин өзгөртүүнү да тоскоолдук кылат. Муздатылган объект өзгөртүлбөйт.
Object.freeze() колдонуу:
- Мындан ары өзгөртүлбөс объекттерди түзүү: Объект кийинки коддо өзгөртүлбөсүн камсыз кылуу.
- Өндүрүмдүүлүктү жакшыртуу: Кээ бир JavaScript моторлору, өзгөртүлбөс объекттерге жетүүнү оңой оптималдаштырат.
- Коопсуздук: Объекттин ички маалыматтарын катаал же зыянын келтирүүчү өзгөртүүлөрдөн коргойт.
Маанилүү эскертүү: Object.freeze() гана үстүрт (жука) муздатуу жүргүзөт. Эгер объекттин мүнөздөмөлөрү башка объекттерге шилтемелер болсо, бул ички объекттер өзгөртүлүшү мүмкүн, эгер алар өзүнчө муздатылбаса.
Мисал:
const obj = {
prop1: 42,
prop2: {
nestedProp: 'hello'
}
};
Object.freeze(obj);
// Опыттар "катуу режимде" көзгө көрүнбөй калат
// Катуу режимде, алар ката жаратпайт, бирок өзгөртүүлөр болбойт
obj.prop1 = 100; // Өзгөрбөйт
delete obj.prop1; // Өчүрүлбөйт
obj.newProp = 'world'; // кошулбайт
console.log(obj.prop1); // 42
console.log(obj.newProp); // undefined
// Ички объект муздатылбаган
obj.prop2.nestedProp = 'goodbye'; // Өзгөрөт
console.log(obj.prop2.nestedProp); // goodbye