Ελέγξτε για έναν απείρως looping λειτουργία . Αυτή είναι η απλούστερη και πιο κοινή αιτία ενός σφάλματος υπερχείλισης στοίβας . Κάθε φορά που μια λειτουργία αυτοαποκαλείται , χρησιμοποιούν όρους δηλώσεις για να εξασφαλιστεί ότι η λειτουργία δεν μπορεί ποτέ η ίδια βρόχο σε ένα σφάλμα υπερχείλισης . Χρησιμοποιήστε έναν μετρητή μεταβλητή ή μια μεταβλητή προετοιμασίας , ή να ελέγξετε την τιμή μιας μεταβλητής που είναι χειραγωγείται από τη λειτουργία για να καθοριστεί εάν ή όχι είναι ήδη εκτελεστεί ήδη . 2
Ελέγξτε για δύο ή περισσότερες λειτουργίες που απαιτούν κάθε άλλο για να σχηματίσουν ένα άπειρο βρόχο . Κάθε φορά που κάποιος καλεί μια άλλη λειτουργία , πρέπει να γνωρίζουν ότι εάν η δεύτερη λειτουργία καλεί και πάλι την πρώτη , μπορεί να είναι δυνατό για τον κωδικό για να βρόχο μέσα σε αυτές τις λειτουργίες . Αυτό μπορεί να συμβεί ακόμη και με περισσότερες από δύο λειτουργίες , και μπορεί να είναι πολύ πιο δύσκολο να εντοπιστούν από μία λειτουργίες looping . Η λύση είναι η ίδια , είτε τρόπος : Χρησιμοποιήστε όρους δηλώσεις για την προστασία του κώδικα κατά looping απείρως
εικόνων 3
Έλεγχος για τα υψηλά επίπεδα της αναδρομής που απαιτούνται για μια λειτουργία για να εκτελέσει . . Μερικές φορές βαθιά αναδρομικές συναρτήσεις δεν είναι μια παράλειψη , αλλά αποτελούν μέρος του σχεδιασμού του κώδικα . Αν αυτή είναι η περίπτωση , τότε να δούμε αν η λειτουργία αυτή μπορεί να χωριστεί σε πολλαπλές λειτουργίες που εκτελούνται σε σειρά , το καθένα με ένα χαμηλότερο επίπεδο της αναδρομής .
Η 4
Φτιάξτε τη δική σας στοίβα . Κάνετε αυτό με τη δημιουργία ενός πίνακα που θα διαχειριστεί τις παραμέτρους για τη λειτουργία απαιτούνται για την εκτέλεση και στη συνέχεια, καλώντας τη λειτουργία μέσα σε ένα βρόχο . Με την αποθήκευση των μεταβλητών και στη συνέχεια, καλώντας τη λειτουργία διαδοχικά από έναν βρόχο , μπορείτε να μιμηθούν τη συμπεριφορά της επαναληπτικής λειτουργίας χωρίς να στηρίζονται σε στοίβα συμπεριφορά της Javascript .
Η
εικόνων
Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα