Junior
Πώς λειτουργεί η μέθοδος apply στη JavaScript;
sobes.tech AI
Απάντηση από AI
Η μέθοδος apply καλείται σε συναρτήσεις και επιτρέπει την κλήση αυτής της συνάρτησης με μια συγκεκριμένη τιμή this και επιχειρήματα που δίνονται με τη μορφή πίνακα (ή αντικειμένου παρόμοιου με πίνακα).
Βασικά σημεία:
- Ορισμός του
this: Το πρώτο επιχείρημα της μεθόδουapplyκαθορίζει την τιμή της λέξης-κλειδιούthisμέσα στη καλούμενη συνάρτηση. Αν περάσετεnullήundefined, σε μη αυστηρή λειτουργία, τοthisθα αναφέρεται στο παγκόσμιο αντικείμενο (π.χ.windowστον browser ήglobalστο Node.js), και σε αυστηρή λειτουργία θα παραμείνειundefined. - Μεταβίβαση επιχειρημάτων: Το δεύτερο επιχείρημα είναι ένας πίνακας (ή ένα αντικείμενο παρόμοιο με πίνακα), των οποίων τα στοιχεία θα γίνουν επιχειρήματα της καλούμενης συνάρτησης, με τη σειρά που εμφανίζονται στον πίνακα.
Σύνταξη:
function.apply(thisArg, argsArray)
thisArg: Η τιμή που θα χρησιμοποιηθεί ωςthisκατά την κλήση της συνάρτησης.argsArray: Πίνακας ή αντικείμενο παρόμοιο με πίνακα που περιέχει τα επιχειρήματα με τα οποία θα κληθεί η συνάρτηση.
Διαφορές με το call:
- Το
applyδέχεται επιχειρήματα ως πίνακα. - Το
callδέχεται επιχειρήματα ως ξεχωριστές τιμές, καταχωρημένες μετά τοthisArg.
Παράδειγμα χρήσης:
// Συνάρτηση για τον υπολογισμό του μέγιστου αριθμού σε πίνακα
const numbers = [1, 5, 2, 8, 3];
const max = Math.max.apply(null, numbers);
console.log(max); // 8
// Κλήση μεθόδου αντικειμένου με διαφορετικό πλαίσιο `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?
Χρήσεις:
- Μεταβίβαση πίνακα επιχειρημάτων σε μια συνάρτηση που αναμένει επιχειρήματα ξεχωριστά.
- Αλλαγή του πλαισίου
thisκατά την κλήση μιας συνάρτησης. - Χρήση με ενσωματωμένες μεθόδους που αναμένουν πολλαπλά επιχειρήματα (π.χ.
Math.max,Math.min).