Sobes.tech
Junior

JavaScriptте freeze ыкмасы эмне кылат?

sobes.tech AI

AIден жооп

Object.freeze() ыкмасы объектти муздатат, жаңы мүнөздөмөлөрдүн кошулушун, барларын өчүрүүнү жана бар мүнөздөмөлөрдүн маанилерин өзгөртүүнү алдын алат. Ал ошондой эле объекттин прототибин өзгөртүүнү да тоскоолдук кылат. Муздатылган объект өзгөртүлбөйт.

Object.freeze() колдонуу:

  1. Мындан ары өзгөртүлбөс объекттерди түзүү: Объект кийинки коддо өзгөртүлбөсүн камсыз кылуу.
  2. Өндүрүмдүүлүктү жакшыртуу: Кээ бир JavaScript моторлору, өзгөртүлбөс объекттерге жетүүнү оңой оптималдаштырат.
  3. Коопсуздук: Объекттин ички маалыматтарын катаал же зыянын келтирүүчү өзгөртүүлөрдөн коргойт.

Маанилүү эскертүү: 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