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