Sobes.tech
Junior

JavaScript'te freeze yöntemi ne yapar?

sobes.tech yapay zeka

AI'dan gelen yanıt

Object.freeze() yöntemi, bir nesneyi dondurur, yeni özelliklerin eklenmesini, mevcutların silinmesini ve mevcut özelliklerin değerlerinin değiştirilmesini engeller. Ayrıca nesnenin prototipinin değiştirilmesini de engeller. Dondurulmuş nesne değişmeden kalır.

Object.freeze() uygulaması:

  1. Sabit nesnelerin oluşturulması: Nesnenin sonraki kodda değiştirilmeyeceği garantisi.
  2. Performans artışı: Bazı JavaScript motorları, değiştirilemez nesnelere erişimi optimize etmeyi daha kolay bulur.
  3. Güvenlik: Nesnenin iç verilerini kazara veya kötü niyetli değişikliklere karşı koruma.

Önemli not: Object.freeze() yalnızca yüzeysel dondurma yapar (sığ dondurma). Nesnenin özellikleri başka nesnelere referanslar içeriyorsa, bu iç içe nesneler, kendileri de dondurulmamışsa, değiştirilebilir.

Örnek:

const obj = {
  prop1: 42,
  prop2: {
    nestedProp: 'hello'
  }
};

Object.freeze(obj);

// Değiştirme girişimleri "katı mod"da görmezden gelinecektir
// Katı modda değilse, hata vermeyebilirler, ancak değişiklikler gerçekleşmez
obj.prop1 = 100; // Değişmeyecek
delete obj.prop1; // Silinmeyecek
obj.newProp = 'world'; // Eklenmeyecek

console.log(obj.prop1); // 42
console.log(obj.newProp); // undefined

// İç içe nesne DONDURULMAMIŞTIR
obj.prop2.nestedProp = 'goodbye'; // Değiştirilecek
console.log(obj.prop2.nestedProp); // goodbye