Λεξικό Περιβάλλον Συναρτήσεων στην JavaScript
Όλες οι εξωτερικές, προσβάσιμες από τη συνάρτηση μεταβλητές, ονομάζονται το λεξικό της περιβάλλον (LexicalEnvironment).
Στο ακόλουθο παράδειγμα, η συνάρτηση έχει πρόσβαση σε δύο
μεταβλητές: num1 και num2, οι οποίες
αποτελούν το λεξικό περιβάλλον της συνάρτησής μας:
let num1 = 1;
let num2 = 2;
function func() {
// η συνάρτηση γνωρίζει για τις μεταβλητές num1 και num2
}
Το ίδιο το λεξικό περιβάλλον αντιπροσωπεύει ένα εσωτερικό αντικείμενο JavaScript, δεμένο στη συνάρτησή μας. Σε αυτήν την περίπτωση, μπορεί να αναπαρασταθεί με την ακόλουθη μορφή:
{num1: 1, num2: 2}
Η τιμή οποιασδήποτε μεταβλητής του λεξικού περιβάλλοντος είναι πάντα ίση με την τρέχουσα τιμή αυτής της μεταβλητής:
let num1 = 1; // περιβάλλον {num1: 1}
let num2 = 2; // περιβάλλον {num1: 1, num2: 2}
// Ας αλλάξουμε τη μεταβλητή num1:
num1 = 123; // περιβάλλον {num1: 123, num2: 2}
function func() {
}
Όταν προσπαθούμε να προσπελάσουμε οποιαδήποτε μεταβλητή μέσα σε μια συνάρτηση, αυτή η μεταβλητή αναζητείται πρώτα μεταξύ των τοπικών μεταβλητών της συνάρτησης και, εάν δεν υπάρχει τέτοια μεταβλητή εκεί, τότε αναζητείται στο λεξικό περιβάλλον της συνάρτησης.