Junior
Jak działa metoda apply w JavaScript?
sobes.tech AI
Odpowiedź od AI
Metoda apply jest wywoływana na funkcjach i pozwala na wywołanie tej funkcji z określoną wartością this oraz argumentami przekazanymi w formie tablicy (lub obiektu podobnego do tablicy).
Główne aspekty:
- Ustawienie
this: Pierwszy argument metodyapplyokreśla wartość słowa kluczowegothiswewnątrz wywoływanej funkcji. Jeśli przekażesznulllubundefined, w trybie nieścisłymthisbędzie odwoływał się do obiektu globalnego (np.windoww przeglądarce lubglobalw Node.js), a w trybie ścisłym pozostanieundefined. - Przekazywanie argumentów: Drugi argument to tablica (lub obiekt podobny do tablicy), którego elementy staną się argumentami wywoływanej funkcji, w kolejności ich występowania w tablicy.
Składnia:
function.apply(thisArg, argsArray)
thisArg: Wartość, która będzie używana jakothispodczas wywołania funkcji.argsArray: Tablica lub obiekt podobny do tablicy zawierający argumenty, którymi zostanie wywołana funkcja.
Różnice w stosunku do call:
applyprzyjmuje argumenty jako tablicę.callprzyjmuje argumenty jako oddzielne wartości, wymienione pothisArg.
Przykład użycia:
// Funkcja do obliczania maksymalnej liczby w tablicy
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8
// Wywołanie metody obiektu z innym kontekstem `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!
gree.apply(person2, ['Hi', '?']); // Hi, Bob?
Zastosowania:
- Przekazywanie tablicy argumentów do funkcji, która oczekuje ich jako oddzielnych parametrów.
- Zmiana kontekstu
thispodczas wywołania funkcji. - Użycie z wbudowanymi metodami, które oczekują wielu argumentów (np.
Math.max,Math.min).