Sobes.tech
Junior

JavaScriptda apply metodasi qanday ishlaydi?

sobes.tech AI

AIdan javob

apply usuli funksiyalarda chaqiriladi va bu funksiyani belgilangan this qiymati va massiv (yoki massivga o'xshash ob'ekt) shaklida o'tkazilgan argumentlar bilan chaqirish imkonini beradi.

Asosiy jihatlar:

  1. this ni sozlash: apply metodining birinchi argumenti chaqirilayotgan funksiyada this kalit so'zining qiymatini belgilaydi. Agar null yoki undefined yuborilsa, no-strict rejimda this global ob'ektga (masalan, brauzerda window, Node.jsda global) murojaat qiladi, strict rejimda esa undefined qoladi.
  2. Argumentlarni o'tkazish: Ikkinchi argument massiv (yoki massivga o'xshash ob'ekt) bo'lib, uning elementlari chaqirilayotgan funksiyaning argumentlari bo'ladi, massivdagi tartibda.

Sintaksis:

function.apply(thisArg, argsArray)
  • thisArg: Funksiyani chaqirishda ishlatiladigan this qiymati.
  • argsArray: Argumentlarni o'z ichiga olgan massiv yoki massivga o'xshash ob'ekt.

call bilan farqi:

  • apply argumentlarni massiv sifatida qabul qiladi.
  • call argumentlarni alohida qiymatlar sifatida, thisArgdan keyin ro'yxat shaklida qabul qiladi.

Misol:

// Maksimal raqami hisoblash uchun funksiya
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8

// Bir ob'ekt metodini boshqa kontekst bilan chaqirish
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?

Qo'llanilishi:

  • Argumentlar massivini, ularni alohida kutadigan funksiyaga uzatish.
  • Funksiya chaqirilganda this kontekstini o'zgartirish.
  • Ichki metodlar bilan ishlash, ular ko'p argumentlarni kutadi (masalan, Math.max, Math.min).