Middle
Τι είναι οι μέθοδοι call, apply και bind στη JavaScript;
sobes.tech AI
Απάντηση από AI
call, apply και bind είναι μέθοδοι διαθέσιμες σε όλες τις συναρτήσεις στην JavaScript. Χρησιμοποιούνται για τη διαχείριση του πλαισίου εκτέλεσης της συνάρτησης (την τιμή του this).
- call: Καλεί μια συνάρτηση με μια συγκεκριμένη τιμή
thisκαι ξεχωριστά ορίσματα.// Παράδειγμα χρήσης του call function greet() { return "Γειά σου, " + this.name + "!"; } const person = { name: "Ivan" }; console.log(greet.call(person)); // Έξοδος: Γειά σου, Ivan! - apply: Καλεί μια συνάρτηση με μια συγκεκριμένη τιμή
thisκαι ορίσματα που περνιούνται ως πίνακας ή ψευδοπίνακας.// Παράδειγμα χρήσης του apply function sum(a, b) { return this.base + a + b; } const context = { base: 10 }; const numbers = [5, 3]; console.log(sum.apply(context, numbers)); // Έξοδος: 18 - bind: Δημιουργεί μια νέα συνάρτηση που, όταν καλείται, έχει ορισμένη μια συγκεκριμένη τιμή
this. Η αρχική συνάρτηση δεν καλείται άμεσα.// Παράδειγμα χρήσης του bind const module = { x: 42, getX: function() { return this.x; } }; const unboundGetX = module.getX; console.log(unboundGetX()); // Έξοδος: undefined (το `this` δείχνει στο παγκόσμιο αντικείμενο) const boundGetX = unboundGetX.bind(module); console.log(boundGetX()); // Έξοδος: 42 (το `this` δεσμεύεται στο module)
Βασικές διαφορές:
| Μέθοδος | Μεταβίβαση ορισμάτων | Κλήση συνάρτησης | Τιμή επιστροφής |
|---|---|---|---|
| call | Ξεχωριστά (με κόμμα) | Άμεσα | Αποτέλεσμα της συνάρτησης |
| apply | Με μορφή πίνακα ή ψευδοπίνακα | Άμεσα | Αποτέλεσμα της συνάρτησης |
| bind | Ξεχωριστά (με κόμμα) | Όχι άμεσα | Νέα συνάρτηση με δεσμευμένο this |