Sobes.tech
Junior

JavaScript-də apply metodu necə işləyir?

sobes.tech Süni İntellekt

AI-dan cavab

apply metodu funksiyalar üzərində çağırılır və bu funksiya ilə this dəyərini və arqumentləri massiv (və ya massivə bənzər obyekt) şəklində keçirməyə imkan verir.

Əsas aspektlər:

  1. this-in təyin olunması: apply metodunun ilk arqumenti çağırılan funksiyada this açar sözünün dəyərini müəyyən edir. Əgər null və ya undefined göndərilsə, qeyri-strict rejimdə this qlobal obyektə (məsələn, brauzerdə window, Node.js-də global) istinad edəcək, strict rejimdə isə undefined qalacaq.
  2. Arqumentlərin ötürülməsi: İkinci arqument massiv (və ya massivə bənzər obyekt) olub, onun elementləri çağırılan funksiyanın arqumentləri olacaq, massivdəki sırasına uyğun.

Sintaksis:

function.apply(thisArg, argsArray)
  • thisArg: Funksiyanı çağırarkən istifadə olunacaq this dəyəri.
  • argsArray: Funksiya ilə çağırılacaq arqumentləri ehtiva edən massiv və ya massivə bənzər obyekt.

call ilə fərqləri:

  • apply arqumentləri massiv kimi qəbul edir.
  • call arqumentləri ayrıca dəyərlər kimi qəbul edir, thisArg-dən sonra sıralanır.

İstifadə nümunəsi:

// Maksimum ədədi hesablamaq üçün funksiya
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8

// Bir obyektin metodunu başqa kontekstlə çağırmaq
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?

İstifadə sahələri:

  • Arqumentlər massivini, onları ayrıca gözləyən funksiyaya ötürmək.
  • Funksiya çağırışında this kontekstini dəyişmək.
  • Mürəkkəb arqumentlər gözləyən daxili metodlar ilə istifadə etmək (məsələn, Math.max, Math.min).