Λειτουργίες επιστροφής κλήσης σε JavaScript

Στο JavaScript, οι προγραμματιστές μπορούν να ορίσουν μονάδες κώδικα συμπεριλαμβανομένων μεταβλητών και συναρτήσεων. Οι λειτουργίες JavaScript μπορούν επίσης να λαμβάνουν παραμέτρους, με τον κωδικό να καλεί μια συνάρτηση που περνά αυτές τις παραμέτρους είτε ως μεταβλητές είτε ως τιμές. Είναι επίσης δυνατό να περάσετε μια αναφορά σε μια άλλη συνάρτηση ως παράμετρος. Μια συνάρτηση επιστροφής είναι συνήθως μια λειτουργία που καλείται όταν ολοκληρωθεί η εκτέλεση μιας άλλης λειτουργίας. Για το λόγο αυτό, οι λειτουργίες επανάκλησης εμφανίζονται συχνά ως παράμετροι σε άλλες λειτουργίες.

Ορισμός επιστροφής κλήσης

Για να εφαρμόσετε μια συνάρτηση επανάκλησης, ο κώδικας JavaScript σε μια σελίδα πρέπει πρώτα να ορίσει τη συνάρτηση. Το ακόλουθο δείγμα κώδικα ορίζει μια συνάρτηση και αποθηκεύει μια μεταβλητή αναφορά σε αυτήν: var callbackDefinition = function (numParam) {alert (numParam); };

Η συνάρτηση χρησιμοποιεί μια αριθμητική παράμετρο για επίδειξη. Η συνάρτηση επανάκλησης μπορεί να περιέχει οποιονδήποτε κώδικα JavaScript που μπορεί να περιλαμβάνει μια τυπική συνάρτηση. Ο κωδικός θα είναι πλέον σε θέση να μεταβιβάσει μια αναφορά στη συνάρτηση ως παράμετρο σε μια άλλη συνάρτηση, χρησιμοποιώντας το όνομα της μεταβλητής.

Παράμετρος επιστροφής κλήσης

Μόλις ένα σενάριο έχει μια συνάρτηση που ορίζεται ως μεταβλητή, μπορεί να μεταβιβάσει αυτήν τη μεταβλητή ως παράμετρο σε μια άλλη συνάρτηση. Το ακόλουθο δείγμα κώδικα δείχνει την τεχνική: mainFunction (10, callbackDefinition);

Αυτός ο κωδικός καλεί μια συνώνυμη συνάρτηση, περνώντας μια παράμετρο αριθμού και το όνομα της μεταβλητής που αποθηκεύει τον κωδικό συνάρτησης επανάκλησης. Το περίγραμμα της συνάρτησης που καλείται εδώ πρέπει να ταιριάζει με αυτές τις δύο παραμέτρους. Η συνάρτηση που λαμβάνει τη μεταβλητή επανάκλησης θα μπορεί να καλεί τη συνάρτηση που αποθηκεύει.

Εκτέλεση λειτουργίας

Μόλις περάσει στην κύρια λειτουργία, μπορεί να εκτελεστεί μια λειτουργία επανάκλησης. Το ακόλουθο δείγμα κώδικα δείχνει: function mainFunction (myNum, callbackFn) {alert (myNum); callbackFn (myNum * 2); }

Για επίδειξη, αυτός ο κώδικας εξάγει πρώτα μια ειδοποίηση JavaScript η οποία θα προκαλέσει ένα παράθυρο διαλόγου στο πρόγραμμα περιήγησης του χρήστη. Μόλις εκτελεστεί αυτός ο κωδικός, η συνάρτηση καλεί τη συνάρτηση επανάκλησης χρησιμοποιώντας το όνομα που καθορίζεται ως παράμετρος. Η κλήση συνάρτησης επιστροφής περιλαμβάνει μια αριθμητική παράμετρο, η οποία αναμένεται από τη συνάρτηση που αρχικά ορίστηκε ως μεταβλητή.

Κλήση λειτουργίας

Μόλις μια σελίδα ορίσει μια λειτουργία, συμπεριλαμβανομένης μιας επιστροφής κλήσης, μπορεί να εκτελέσει αυτόν τον κώδικα. Συχνά, οι προγραμματιστές καθοδηγούν το πρόγραμμα περιήγησης να ακούει ένα συμβάν χρήστη, εκτελώντας λειτουργίες όταν συμβαίνει αυτό. Για παράδειγμα, ο ακόλουθος κώδικας HTML καλεί μια συνάρτηση: Εδώ είναι μια ενότητα με δυνατότητα κλικ

Εάν η συνάρτηση που ορίζεται ως παράμετρος περιέχει τον ορισμό της μεταβλητής επανάκλησης και την κλήση προς την κύρια συνάρτηση, αυτό θα δημιουργήσει το εφέ επιστροφής κλήσης, ως εξής: συνάρτηση doCallback () {var callFn = function (numParam) {alert (numParam); }; mainFunction (10, callFn); }

Μόλις η κύρια συνάρτηση εκτελέσει το δικό της περιεχόμενο κώδικα, καλεί τη συνάρτηση επανάκλησης.