Sobes.tech
Middle

Πώς λειτουργεί ένα κλείσιμο (closure) στη JavaScript; Εξηγήστε το με ένα παράδειγμα της μεταβλητής index και της λειτουργίας run στη λύση σας.

sobes.tech AI

Απάντηση από AI

Στην JavaScript, ένα κλείσιμο (closure) είναι μια συνάρτηση που θυμάται το λεξικό της περιβάλλον, ακόμα και αν καλείται εκτός του πεδίου ορατότητάς της.

Ας δούμε ένα παράδειγμα με τη μεταβλητή index και τη συνάρτηση run:

function createRunner() {
  let index = 0;
  function run() {
    console.log(index);
    index++;
  }
  return run;
}

const runner = createRunner();
runner(); // 0
runner(); // 1
runner(); // 2

Εδώ, η συνάρτηση run κλείνει τη μεταβλητή index από τη εξωτερική συνάρτηση createRunner. Ακόμα και αν η createRunner έχει ολοκληρώσει την εκτέλεσή της, το run συνεχίζει να έχει πρόσβαση στο index και μπορεί να το τροποποιήσει. Αυτό επιτρέπει να διατηρείται η κατάσταση μεταξύ των κλήσεων της συνάρτησης run.

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