Sobes.tech
Middle

JavaScript'te neden 'this' anahtar kelimesi kullanılmamalıdır?

sobes.tech yapay zeka

AI'dan gelen yanıt

Bu this'i, kendi bağlamına bağlamak için ok fonksiyonlarında kullanılamaz. Ok fonksiyonları kendi this'ini oluşturmaz, onun değerini tanımlandıkları kapsamdan miras alır.

Ayrıca, this güvenilir değildir, çünkü bağlamın açıkça bağlanmadığı (.bind(), .call(), .apply()) geri çağırmalarda veya olay işleyicilerinde, değeri değişebilir veya küresel nesneye (kısıtlamasız modda) veya undefined'a dönüşebilir.

Örnek:

function gelenekselFonksiyon() {
  console.log(this); // this, çağrıya bağlıdır
}

const okFonk = () => {
  console.log(this); // this, dış kapsamdan miras alınır
};

const nesne = {
  metod: gelenekselFonksiyon
};

nesne.metod(); // this - nesne
gelenekselFonksiyon(); // this - küresel nesne (window / global)

const nesne2 = {
  metod: okFonk
};

nesne2.metod(); // this - miras alınır. Eğer küresel alanda tanımlanmışsa, global / window olur.