Sobes.tech
Junior

Ի՞նչ է անում freeze մեթոդը JavaScript-ում։

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