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
thisdeğ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
thisdeğ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
thisdeğ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 |