Junior
Kako funkcioniše metoda apply u JavaScript-u?
sobes.tech АИ
Одговор од АИ
Metoda apply se poziva na funkcijama i omogućava pozivanje te funkcije sa određenom vrednošću this i argumentima prosleđenim u obliku niza (ili objekta sličnog nizu).
Glavni aspekti:
- Postavljanje
this: Prvi argument metodeapplyodređuje vrednost ključne rečithisunutar pozvane funkcije. Ako prosleditenulliliundefined, u nestriktivnom režimuthisće se odnositi na globalni objekat (npr.windowu pretraživaču iliglobalu Node.js), a u strikt režimu će ostatiundefined. - Prenos argumenata: Drugi argument je niz (ili objekat sličan nizu), čiji će elementi postati argumenti pozvane funkcije, u redosledu u kojem se pojavljuju u nizu.
Sintaksa:
function.apply(thisArg, argsArray)
thisArg: Vrednost koja će biti korišćena kaothisprilikom poziva funkcije.argsArray: Niz ili objekat sličan nizu koji sadrži argumente sa kojima će funkcija biti pozvana.
Razlike u odnosu na call:
applyprihvata argumente kao niz.callprihvata argumente kao odvojene vrednosti, navedene nakonthisArg.
Primer upotrebe:
// Funkcija za računanje maksimalnog broja u nizu
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8
// Pozivanje metode objekta sa drugim kontekstom `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?
Upotreba:
- Prenos niza argumenata funkciji koja ih očekuje kao odvojene parametre.
- Promena konteksta
thisprilikom poziva funkcije. - Upotreba sa ugrađenim metodama koje očekuju više argumenata (npr.
Math.max,Math.min).