⊗jsPmFNClb 255 of 505 menu

Συναρτήσεις Callback στην JavaScript

Οι συναρτήσεις μπορούν να μεταβιβάζονται ως παράμετροι σε άλλες συναρτήσεις. Τέτοιες συναρτήσεις-παράμετροι ονομάζονται callback (callback). Ας δούμε τη λειτουργία τους με ένα παράδειγμα.

Ας υποθέσουμε ότι θέλουμε να φτιάξουμε μια συνάρτηση, που πρώτα θα δέχεται έναν πίνακα, και δεύτερον - ένα callback, που θα εφαρμόζεται σε κάθε στοιχείο του πίνακα:

function each(arr, callback) { // εδώ κάποιος κώδικας }

Ας γράψουμε την υλοποίηση της συνάρτησής μας:

function each(arr, callback) { let result = []; for (let elem of arr) { result.push( callback(elem) ); // καλούμε τη συνάρτηση-callback } return result; }

Η συνάρτησή μας each - είναι καθολική. Αυτό σημαίνει ότι μπορούμε να της μεταβιβάζουμε διάφορα callbacks, εκτελώντας διαφορετικές πράξεις σε πίνακες. Ταυτόχρονα ο κώδικας της συνάρτησής μας παραμένει αμετάβλητος - θα αλλάζουν μόνο τα callbacks που μεταβιβάζονται.

Ας χρησιμοποιήσουμε ως παράδειγμα τη συνάρτησή μας για να υψώσουμε στο τετράγωνο κάθε στοιχείο ενός πίνακα. Για αυτό θα μεταβιβάσουμε ως παράμετρο το αντίστοιχο callback:

let result = each([1, 2, 3, 4, 5], function(num) { return num ** 2; }); console.log(result);

Και τώρα ας υψώσουμε τα στοιχεία του πίνακα στον κύβο. Για αυτό ως παράμετρο θα μεταβιβάσουμε ήδη ένα άλλο callback, που εκτελεί αυτή την πράξη:

let result = each([1, 2, 3, 4, 5], function(num) { return num ** 3; }); console.log(result);

Δίνεται ένας πίνακας με αριθμούς. Με τη βοήθεια της δημιουργημένης μας συνάρτησης each αυξήστε κάθε στοιχείο κατά δύο φορές.

Δίνεται ένας πίνακας με συμβολοσειρές. Με τη βοήθεια της δημιουργημένης μας συνάρτησης each αναστρέψτε τους χαρακτήρες κάθε συμβολοσειράς σε αντίστροφη σειρά.

Δίνεται ένας πίνακας με συμβολοσειρές. Με τη βοήθεια της δημιουργημένης μας συνάρτησης each κάντε κεφαλαίο τον πρώτο χαρακτήρα κάθε συμβολοσειράς.

Ελληνικά
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Χρησιμοποιούμε cookie για τη λειτουργία του ιστότοπου, την ανάλυση και την εξατομίκευση. Η επεξεργασία των δεδομένων γίνεται σύμφωνα με την Πολιτική Απορρήτου.
αποδοχή όλων ρύθμιση απόρριψη