This Anahtar Kelimesi: Hangi Durumda Neyi İşaret Eder?

crazy_coder

Moderatör
Katılım
20 Şub 2026
Mesajlar
204
Tepkime puanı
0
Puanları
16

1. Global Kapsamda this​


Eğer this herhangi bir fonksiyonun veya objenin içinde değilse, en tepedeki nesneyi işaret eder. Tarayıcı ortamında bu nesne window objesidir.

JavaScript:
console.log(this); // Çıktı: Window {...}

2. Bir Obje Metodu İçinde this​


Bir fonksiyon, bir objenin özelliği (metodu) olarak çağrıldığında, this o objenin kendisini işaret eder. Bu, nesne yönelimli programlamanın temelidir.

JavaScript:
const kullanici = {
ad: "Ahmet",
selamla: function() {
console.log(Merhaba, ben ${this.ad});
}
};

kullanici.selamla(); // Çıktı: Merhaba, ben Ahmet (this = kullanici)

3. Fonksiyonlarda this (Katı Mod Farkı)​


Sıradan bir fonksiyonun içinde this kullanımı, modunuza göre değişir:


  • []Normal Mod: this yine global objeyi (window) işaret eder.
    []Strict Mode ("use strict"): Hataları önlemek için this değeri undefined olur.

JavaScript:
function test() {
console.log(this);
}
test(); // Normal modda Window, strict modda undefined döner.

4. Arrow Functions (Ok Fonksiyonları) ve this​


İşte en kritik nokta burası! Arrow function'ların kendilerine ait bir this bağlamı yoktur. Onlar, this değerini yazıldıkları yerin dışındaki (parent) kapsamdan miras alırlar.

JavaScript:
const grup = {
isim: "Frontend Ekibi",
uyeler: ["Can", "Ece"],
listele: function() {
// Normal fonksiyon: this = grup
this.uyeler.forEach((uye) => {
// Arrow function: this'i dışarıdaki listele metodundan alır
console.log(${this.isim}: ${uye});
});
}
};
grup.listele();

Önemli İpucu: Eğer bir obje metodu yazıyorsanız ve this ile objenin diğer özelliklerine erişmek istiyorsanız arrow function kullanmamalısınız, çünkü this objeyi değil window'u gösterecektir.

5. Event Listeners (Olay Dinleyicileri) İçinde this​


Bir olay dinleyicisi içinde (callback olarak arrow function kullanılmadığı sürece), this o olayı tetikleyen HTML elementini işaret eder.

JavaScript:
const buton = document.querySelector("#btn");

buton.addEventListener("click", function() {
console.log(this); // Çıktı: <button id="btn">...</button>
this.style.backgroundColor = "red";
});

6. call(), apply() ve bind() ile this'i Yönetmek​


Bazen this değerini zorla bir objeye bağlamak isteyebiliriz.


  • []call / apply: Fonksiyonu hemen çalıştırır ve this değerini sizin verdiğiniz obje yapar.
    []bind: Fonksiyonu çalıştırmaz, sadece this değeri sizin verdiğiniz objeye sabitlenmiş yeni bir fonksiyon üretir.

JavaScript:
const araba = { marka: "Audi" };
function bilgi() { console.log(this.marka); }

const bagliBilgi = bilgi.bind(araba);
bagliBilgi(); // Çıktı: Audi



Sonuç Özeti

Çağrılma Şeklithis Değeri
Global KapsamWindow (veya Global)
Obje MetoduObjenin Kendisi
Sıradan FonksiyonWindow (Strict modda undefined)
Arrow FunctionDış (Parent) Kapsamdaki this
Olay (Event)Olayı tetikleyen Element
 
Geri
Üst