Sobes.tech
Junior

JavaScript'te apply yöntemi nasıl çalışır?

sobes.tech yapay zeka

AI'dan gelen yanıt

apply yöntemi, fonksiyonlar üzerinde çağrılır ve bu fonksiyonun belirli bir this değeri ve dizi (veya dizi benzeri nesne) biçiminde geçirilen argümanlarla çağrılmasını sağlar.

Ana yönler:

  1. this ayarı: apply metodunun ilk argümanı, çağrılan fonksiyon içindeki this anahtar kelimesinin değerini belirler. Eğer null veya undefined verilirse, strict olmayan modda this küresel nesneye (örneğin, tarayıcıda window, Node.js'de global) referans eder; strict modda ise undefined kalır.
  2. Argümanların iletimi: İkinci argüman, fonksiyonun çağrılacağı argümanlar dizisini içeren bir dizi (veya dizi benzeri nesne) olmalıdır ve dizideki öğeler, fonksiyonun argümanları olarak kullanılır, dizideki sırasına göre.

Sözdizimi:

function.apply(thisArg, argsArray)
  • thisArg: Fonksiyon çağrısı sırasında kullanılacak this değeri.
  • argsArray: Fonksiyonun çağrılacağı argümanları içeren dizi veya dizi benzeri nesne.

call ile farkları:

  • apply, argümanları bir dizi olarak alır.
  • call, argümanları ayrı ayrı, thisArg'den sonra sıralı olarak alır.

Kullanım örneği:

// Bir dizideki maksimum sayıyı hesaplayan fonksiyon
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8

// Bir nesnenin metodunu başka bir bağlamla çağırma
const person1 = { name: 'Alice' };
const person2 = { name: 'Bob' };

function greet(greeting, punctuation) {
  console.log(`${greeting}, ${this.name}${punctuation}`);
}

greet.apply(person1, ['Hello', '!']); // Hello, Alice!
 gree.apply(person2, ['Hi', '?']);    // Hi, Bob?

Kullanım alanları:

  • Argüman dizisini, fonksiyonun ayrı ayrı beklediği argümanlara dönüştürmek.
  • Fonksiyon çağrısı sırasında this bağlamını değiştirmek.
  • Çok argümanlı metodlar ile kullanmak (örneğin, Math.max, Math.min).