call, apply ve bind arasındaki fark nedir?
Cevap
Üçü de bir fonksiyonun this değerini açıkça belirlemeyi sağlar.
- call: fonksiyonu hemen çağırır, argümanları tek tek alır
- apply: fonksiyonu hemen çağırır, argümanları dizi olarak alır
- bind: fonksiyonu çağırmaz;
this'i (ve isteğe bağlı argümanları) sabitlenmiş yeni bir fonksiyon döndürür
function tanit(selam, nokta) {
return `${selam}, ben ${this.ad}${nokta}`;
}
const kisi = { ad: "Ayşe" };
tanit.call(kisi, "Merhaba", "!"); // "Merhaba, ben Ayşe!"
tanit.apply(kisi, ["Selam", "."]); // "Selam, ben Ayşe."
const bagli = tanit.bind(kisi, "Hey");
bagli("?"); // "Hey, ben Ayşe?"bind özellikle event handler'larda ve callback olarak geçirilen metotlarda this'in kaybolmasını önlemek için kullanılır.
İlgili JavaScript soruları
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.