Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> JavaScript Προγραμματισμός

Πώς να επισκευάσει ένα Out of Space Stack λάθους σε JavaScript

Το κλειδί για τον καθορισμό "Out of Space Stack " σφάλμα , και πιο γενικά γνωστό ως ένα σφάλμα υπερχείλισης στοίβας , είναι πρώτα να κατανοήσουμε τι σημαίνει . Όταν καλείται μια συνάρτηση στην JavaScript , η λειτουργία και των μεταβλητών του αντιγράφονται στη μνήμη σε ό, τι λέγεται η στοίβα . Αν η συνάρτηση καλεί μία άλλη λειτουργία ( ή την ίδια λειτουργία και πάλι) , τότε η συνάρτηση του παιδιού προστίθεται επίσης στη στοίβα . Εάν αυτή η μορφή αναδρομικών κλήση των λειτουργιών υπερβαίνει το όριο αναδρομής που έχει προσδιοριστεί από το πρόγραμμα περιήγησης , έπειτα το JavaScript θα επιστρέψει ένα μήνυμα λάθους υπερχείλισης στοίβας . Οδηγίες
Η 1

Ελέγξτε για έναν απείρως looping λειτουργία . Αυτή είναι η απλούστερη και πιο κοινή αιτία ενός σφάλματος υπερχείλισης στοίβας . Κάθε φορά που μια λειτουργία αυτοαποκαλείται , χρησιμοποιούν όρους δηλώσεις για να εξασφαλιστεί ότι η λειτουργία δεν μπορεί ποτέ η ίδια βρόχο σε ένα σφάλμα υπερχείλισης . Χρησιμοποιήστε έναν μετρητή μεταβλητή ή μια μεταβλητή προετοιμασίας , ή να ελέγξετε την τιμή μιας μεταβλητής που είναι χειραγωγείται από τη λειτουργία για να καθοριστεί εάν ή όχι είναι ήδη εκτελεστεί ήδη . 2

Ελέγξτε για δύο ή περισσότερες λειτουργίες που απαιτούν κάθε άλλο για να σχηματίσουν ένα άπειρο βρόχο . Κάθε φορά που κάποιος καλεί μια άλλη λειτουργία , πρέπει να γνωρίζουν ότι εάν η δεύτερη λειτουργία καλεί και πάλι την πρώτη , μπορεί να είναι δυνατό για τον κωδικό για να βρόχο μέσα σε αυτές τις λειτουργίες . Αυτό μπορεί να συμβεί ακόμη και με περισσότερες από δύο λειτουργίες , και μπορεί να είναι πολύ πιο δύσκολο να εντοπιστούν από μία λειτουργίες looping . Η λύση είναι η ίδια , είτε τρόπος : Χρησιμοποιήστε όρους δηλώσεις για την προστασία του κώδικα κατά looping απείρως
εικόνων 3

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

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

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα