Sobes.tech
Junior

Για ποιο λόγο χρειάζεται να χρησιμοποιήσουμε κλείσιμο σε JavaScript;

sobes.tech AI

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

Το κλείσιμο (closure) στην JavaScript είναι μια λειτουργία που «θυμάται» το περιβάλλον στο οποίο δημιουργήθηκε, συμπεριλαμβανομένης της πρόσβασης σε μεταβλητές από το εξωτερικό πεδίο, ακόμα και αν αυτή η εξωτερική λειτουργία έχει ήδη ολοκληρωθεί.

Για ποιο λόγο χρειάζεται:

  • Διατήρηση της κατάστασης μεταξύ κλήσεων λειτουργιών.
  • Ενθυλάκωση δεδομένων, δημιουργία ιδιωτικών μεταβλητών.
  • Υλοποίηση λειτουργιών με προεπιλεγμένες παραμέτρους ή μερική εφαρμογή.
  • Στα React hooks, τα closures βοηθούν στη διατήρηση της πρόσβασης στην κατάσταση και τις ιδιότητες μέσα στις λειτουργίες.

Παράδειγμα:

function makeCounter() {
  let count = 0;
  return function() {
    count += 1;
    return count;
  };
}

const counter = makeCounter();
console.log(counter()); // 1
console.log(counter()); // 2

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