Συνάρτηση ως Μεταβλητή σε JavaScript
Λοιπόν, στο προηγούμενο μάθημα ανακαλύψαμε, ότι αν προσπελάσουμε μια συνάρτηση χωρίς παρενθέσεις, λαμβάνουμε τον πηγαίο κώδικά της.
Στην πραγματικότητα, τα πράγματα είναι πολύ πιο ενδιαφέροντα. Στο JavaScript, σε αντίθεση με άλλες γλώσσες, οι συναρτήσεις είναι τα ίδια τιμές μεταβλητών, όπως οι αριθμοί, οι συμβολοσειρές και οι πίνακες.
Ας δούμε ένα παράδειγμα. Ας υποθέσουμε ότι έχουμε
για παράδειγμα, τη συνάρτηση func:
function func() {
console.log('!');
}
Στην πραγματικότητα δεν έχουμε τη συνάρτηση func.
Έχουμε τη μεταβλητή func, που αποθηκεύει
μέσα της τον πηγαίο κώδικα της συνάρτησης.
Μπορούμε, για παράδειγμα, να αντικαταστήσουμε (π.χ. να γραμμίσουμε) τη μεταβλητή
func με κάτι άλλο, για παράδειγμα,
μια συμβολοσειρά. Σε αυτήν την περίπτωση, η συνάρτηση func
δεν θα είναι πλέον συνάρτηση, αλλά θα είναι συμβολοσειρά.
Δείτε το παράδειγμα:
function func() {
console.log('!');
}
func(); // θα εμφανίσει '!'
func = 'string'; // αντικαθιστούμε τη μεταβλητή func
console.log(func); // θα εμφανίσει 'string'
Δημιουργήστε μια συνάρτηση func, που θα
επιστρέφει μέσω return κάποια συμβολοσειρά.
Εμφανίστε το αποτέλεσμα της συνάρτησης func
στην κονσόλα.
Εμφανίστε τον πηγαίο κώδικα της συνάρτησης func
στην κονσόλα.
Αποθηκεύστε στη μεταβλητή func τον αριθμό 123,
αντικαθιστώντας έτσι τη συνάρτηση από αυτήν τη μεταβλητή.
Εμφανίστε τη νέα τιμή της μεταβλητής func
στην κονσόλα.