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.

  1. var, let ve const arasındaki fark nedir?KolayJavaScriptFrontend
  2. == ile === arasındaki fark nedir?KolayJavaScriptFrontend
  3. Closure nedir? Bir örnekle açıklayın.OrtaJavaScriptFrontend
  4. Aşağıdaki kodun çıktısı nedir? (Event loop)OrtaJavaScriptFrontend
  5. this anahtar kelimesi nasıl belirlenir? Arrow function'larda ne değişir?OrtaJavaScriptFrontend
  6. Bir debounce fonksiyonu yazın.ZorJavaScriptFrontend

Bu konuda başka bir soru biliyor musun?

Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.

Soru ekle