Sobes.tech
Junior

Kā darbojas apply metode JavaScript?

sobes.tech AI

Atbilde no AI

apply metode tiek funkcijas, kas ļauj izsaukt šo funkciju ar noteiktu this vērtību un argumentu masīvu (vai līdzīgu objektu).

Galvenie aspekti:

  1. this iestatīšana: apply metodes pirmais arguments nosaka this vērtību izsaukšanas laikā. Ja tiek nodots null vai undefined, tad neitrālā režīmā this atsauksies uz globālo objektu (piemēram, pārlūkā window vai Node.js global), bet stingrā režīmā tas paliks undefined.
  2. Argumentu nodošana: otrais arguments ir masīvs (vai masīvam līdzīgs objekts), kura elementi kļūs par izsaucamās funkcijas argumentiem, ievērojot to secību.

Sintakse:

function.apply(thisArg, argsArray)
  • thisArg: vērtība, kas tiks izmantota kā this funkcijas izsaukšanas laikā.
  • argsArray: masīvs vai masīvam līdzīgs objekts, kas satur argumentus, kuri tiks nodoti funkcijai.

Atšķirības no call:

  • apply pieņem argumentus kā masīvu.
  • call pieņem argumentus kā atsevišķas vērtības, kas ir norādītas pēc thisArg.

Piemērs:

// Funkcija, kas atrod maksimālo skaitli masīvā
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8

// Objekta metodes izsaukšana ar citu kontekstu
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?

Lietojums:

  • Masīva argumentu nodošana funkcijai, kas tos sagaida kā atsevišķus parametrus.
  • this konteksta maiņa funkcijas izsaukšanas laikā.
  • Izmantošana ar iebūvētiem metodēm, kas sagaida daudz argumentu (piemēram, Math.max, Math.min).