Sobes.tech
Middle

JavaScript'te call, apply ve bind metodları nedir?

sobes.tech yapay zeka

AI'dan gelen yanıt

call, apply ve bind, JavaScript'te tüm fonksiyonlar için erişilebilir yöntemlerdir. Bunlar, fonksiyonun yürütme bağlamını (değer this) yönetmek için kullanılır.

  • call: Bir fonksiyonu, belirli bir this değeri ve ayrı argümanlar ile çağırır.
    // call kullanım örneği
    function greet() {
      return "Merhaba, " + this.name + "!";
    }
    
    const person = { name: "Ivan" };
    
    console.log(greet.call(person)); // Çıktı: Merhaba, Ivan!
    
  • apply: Bir fonksiyonu, belirli bir this değeri ve dizi veya pseudo-dizi şeklinde argümanlar ile çağırır.
    // apply kullanım örneği
    function sum(a, b) {
      return this.base + a + b;
    }
    
    const context = { base: 10 };
    const numbers = [5, 3];
    
    console.log(sum.apply(context, numbers)); // Çıktı: 18
    
  • bind: Yeni bir fonksiyon oluşturur ve bu fonksiyon çağrıldığında belirli bir this değeri ile çalışır. Orijinal fonksiyon hemen çağrılmaz.
    // bind kullanım örneği
    const module = {
      x: 42,
      getX: function() {
        return this.x;
      }
    };
    
    const unboundGetX = module.getX;
    console.log(unboundGetX()); // Çıktı: undefined (this global nesneye işaret eder)
    
    const boundGetX = unboundGetX.bind(module);
    console.log(boundGetX()); // Çıktı: 42 (this module'e bağlanmıştır)
    

Ana farklar:

Yöntem Argümanların iletimi Fonksiyon çağrısı Dönüş değeri
call Virgülle ayrılmış (ayrı) Hemen Fonksiyonun sonucu
apply Dizi veya pseudo-dizi şeklinde Hemen Fonksiyonun sonucu
bind Virgülle ayrılmış (ayrı) Hemen değil this bağlı yeni fonksiyon