Τι είναι το κλείσιμο στο JavaScript και πώς λειτουργούν;



Τα κλεισίματα σε JavaScript δημιουργούνται κάθε φορά που δημιουργείται μια συνάρτηση, κατά τη δημιουργία της λειτουργίας. Παρέχει καλύτερο έλεγχο του κώδικα κατά τη χρήση τους.

είναι μια γλώσσα προσανατολισμένη στη λειτουργία που δίνει μεγάλη ελευθερία στον χρήστη. Μπορείτε να δημιουργήσετε μια συνάρτηση δυναμικά, να την αντιγράψετε σε άλλη μεταβλητή ή να μεταβιβάσετε ως όρισμα σε άλλη συνάρτηση και να καλέσετε από διαφορετικό μέρος αργότερα. Τα κλεισίματα σε JavaScript δημιουργούνται κάθε φορά που δημιουργείται μια συνάρτηση, κατά τη δημιουργία της λειτουργίας. Σε αυτό το άρθρο, θα κατανοήσουμε το κλείσιμο με την ακόλουθη σειρά:

Εισαγωγή στο κλείσιμο σε JavaScript

Το κλείσιμο είναι ένας συνδυασμός του a λειτουργία ομαδοποιείται μαζί με αναφορές στην περιβάλλουσα κατάστασή του, δηλαδή στο λεξικό περιβάλλον. Με άλλα λόγια, ένα κλείσιμο σάς παρέχει πρόσβαση από μια εσωτερική λειτουργία στο πεδίο μιας εξωτερικής λειτουργίας.





είδος αλγορίθμου c ++

κωδικοποιητής - κλείσιμο σε javascript - edureka

Οι περισσότεροι από τους προγραμματιστές χρησιμοποιούν κλείσιμο σε JavaScript συνειδητά ή ασυνείδητα. Παρέχει καλύτερο έλεγχο του κώδικα κατά τη χρήση τους. Επίσης, είναι η πιο συχνή ερώτηση κατά τη διάρκεια οποιασδήποτε .



Παράδειγμα:

function foo () {var x = 10 function internal () {return x} return internal} var get_func_inner = foo () console.log (get_func_inner ()) console.log (get_func_inner ()) console.log (get_func_inner ())

Παραγωγή:

10
10
10



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

τι κάνει το trim στην Java

Πρακτικά κλείσιμο

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

Κατά συνέπεια, μπορείτε να χρησιμοποιήσετε ένα κλείσιμο οπουδήποτε και να χρησιμοποιείτε κανονικά ένα αντικείμενο με μία μόνο μέθοδο.

Παράδειγμα:

συνάρτηση makeSizer (size) {return function () {document.body.style.fontSize = size + 'px'}} var size12 = makeSizer (12) var size14 = makeSizer (14) var size16 = makeSizer (16)

Το παραπάνω παράδειγμα επισυνάπτεται γενικά ως επιστροφή κλήσης: μία λειτουργία που εκτελείται σε απάντηση στο συμβάν.

Πεδίο εφαρμογής

Το κλείσιμο σε JavaScript έχει τρία πεδία όπως:

  • Τοπικό πεδίο εφαρμογής
  • Πεδίο εξωτερικών λειτουργιών
  • Παγκόσμιο πεδίο εφαρμογής

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

// παγκόσμιο εύρος var x = 10 άθροισμα συνάρτησης (α) {συνάρτηση επιστροφής (β) {συνάρτηση επιστροφής (γ) {// συνάρτηση επιστροφής εξωτερικών συναρτήσεων (δ) {// επιστροφή τοπικού εύρους a + b + c + d + x}}}} console.log (άθροισμα (1) (2) (3) (4)) // log 20

Μπορεί επίσης να γραφτεί χωρίς ανώνυμες συναρτήσεις:

// καθολική κλίμακα var x = 10 άθροισμα συνάρτησης (α) {συνάρτηση επιστροφής άθροισμα 2 (β) {συνάρτηση επιστροφής άθροισμα3 (γ) {// εξωτερική συνάρτηση εύρους συνάρτηση επιστροφής άθροισμα 4 (δ) {// τοπικό εύρος επιστροφή a + b + c + d + x}}}} var s = άθροισμα (1) var s1 = s (2) var s2 = s1 (3) var s3 = s2 (4) console.log (s3) // log 20

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

Κλείσιμο εντός βρόχου

Μπορείτε να χρησιμοποιήσετε το κλείσιμο σε JavaScript για να αποθηκεύσετε μια ανώνυμη λειτουργία σε κάθε ευρετήριο ενός πίνακας . Ας πάρουμε ένα παράδειγμα και να δούμε πώς χρησιμοποιούνται τα κλεισίματα εντός ενός βρόχου.

Παράδειγμα:

πώς να μάθετε pl sql
εξωτερική συνάρτηση () {var arr = [] var i για (i = 0 i<3 i++) { // storing anonymus function arr[i] = function () { return i } } // returning the array. return arr } var get_arr = outer() console.log(get_arr[0]()) console.log(get_arr[1]()) console.log(get_arr[2]())

Παραγωγή:

3
3
3
3

Με αυτό, φτάσαμε στο τέλος του άρθρου μας. Ελπίζω να καταλάβατε πώς λειτουργεί το κλείσιμο στο JavaScript και πώς χρησιμοποιούνται για καλύτερο έλεγχο του κώδικα.

Τώρα που γνωρίζετε για το κλείσιμο σε JavaScript, ρίξτε μια ματιά στο από την Edureka. Η Εκπαίδευση Πιστοποίησης Ανάπτυξης Ιστού θα σας βοηθήσει να μάθετε πώς να δημιουργείτε εντυπωσιακούς ιστότοπους χρησιμοποιώντας HTML5, CSS3, Twitter Bootstrap 3, jQuery και Google APIs και να το αναπτύξετε στο Amazon Simple Storage Service (S3).

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων του 'Κλείσιμο σε JavaScript' και θα επικοινωνήσουμε μαζί σας.