Sobes.tech
Junior

Методи freeze дар JavaScript чӣ мекунад?

sobes.tech AI

Ҷавоб аз AI

Метод Object.freeze() яхшилаш объект, яъни ярамас қилади янги хусусиятлар қўшиш, мавжудларини ўчириш ва уларнинг қийматларини ўзгартиришни. Шунингдек, объект прототипини ўзгартиришни ҳам олдини олади. Яхшилашган объект ўзгармас қолади.

Object.freeze() қўлланиши:

  1. Мустаҳкам объектлар яратиш: Объект кейинги кодда ўзгартирилмаслигини кафолатлайди.
  2. Ишлаш самарадорлигини ошириш: баъзи JavaScript моторлари, ўзгартирилмас объектларга кирishni оптималлаштиришда осонроқ топади.
  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