Junior
Kaip veikia apply metodas JavaScript'e?
sobes.tech AI
Atsakymas iš AI
apply metodas kviečiamas funkcijose ir leidžia iškviesti tą funkciją su nurodyta this reikšme ir argumentų masyvu (arba masyvu panašiu objektu).
Pagrindiniai aspektai:
thisnustatymas:applymetodo pirmasis argumentas nurodothisreikšmę iškviečiamos funkcijos viduje. Jei perduodamanullarbaundefined, tada negriežtame režimethisnuoroda bus į globalųjį objektą (pavyzdžiui, naršyklėjewindowarba Node.jsglobal), o griežtame režime liksundefined.- Argumentų perdavimas: antrasis argumentas yra masyvas (arba masyvu panašus objektas), kurio elementai taps iškviečiamos funkcijos argumentais, perduodamais jų sekos tvarka.
Sintaksė:
function.apply(thisArg, argsArray)
thisArg: reikšmė, kuri bus naudojama kaipthisiškviečiant funkciją.argsArray: masyvas arba masyvu panašus objektas, turintis argumentus, kurie bus perduoti funkcijai.
Skirtumai nuo call:
applypriima argumentus kaip masyvą.callpriima argumentus kaip atskirus reikšmes, išvardytas pothisArg.
Naudojimo pavyzdys:
// Funkcija, skirta rasti didžiausią skaičių masyve
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8
// Objekto metodo iškvietimas su kitu kontekstu `this`
const person1 = { name: 'Alice' };
const person2 = { name: 'Bob' };
function greet(greeting, punctuation) {
console.log(`${greeting}, ${this.name}${punctuation}`);
}
greet.apply(person1, ['Hello', '!']); // Hello, Alice!
'greet.apply(person2, ['Hi', '?']); // Hi, Bob?
Naudojimas:
- Masyvo argumentų perdavimas funkcijai, kuri jų tikisi kaip atskirus parametrus.
thiskonteksto keitimas funkcijos iškvietimo metu.- Naudojimas su įmontuotomis metodais, kurie tikisi daugybės argumentų (pvz.,
Math.max,Math.min).