Σφάλμα μη καθορισμένης συνάρτησης JavaScript (ΑΛΛΑ ΕΙΝΑΙ ΟΡΙΣΜΕΝΟ)

Sphalma Me Kathorismenes Synarteses Javascript Alla Einai Orismeno



Σε JavaScript, ' λειτουργία δεν έχει οριστεί ” είναι ένα συνηθισμένο σφάλμα που παρουσιάζεται όταν το πρόγραμμα προσπαθεί να χρησιμοποιήσει μια συνάρτηση που δεν έχει δηλωθεί ή οριστεί στο τρέχον πεδίο. Αυτό το μήνυμα σφάλματος μπορεί να προκαλέσει σύγχυση, επειδή μερικές φορές η συνάρτηση ορίζεται πραγματικά στον κώδικα, αλλά εξακολουθεί να έχει ως αποτέλεσμα το σφάλμα.

Αυτό το άρθρο θα περιγράψει το JavaScript 'σφάλμα που δεν ορίζεται συνάρτηση' ενώ έχει οριστεί.

Σφάλμα μη καθορισμένης συνάρτησης JavaScript (ΑΛΛΑ ΕΙΝΑΙ ΟΡΙΣΜΕΝΟ)

Μερικές φορές, η συνάρτηση ορίζεται στον κώδικα, αλλά παρόλα αυτά, μπορείτε να αντιμετωπίσετε το ακόλουθο σφάλμα:









Υπάρχουν δύο κύριοι λόγοι για τους οποίους εμφανίζεται το παραπάνω σφάλμα μετά τον ορισμό της συνάρτησης, οι οποίοι παρατίθενται παρακάτω:



Λόγος 1: Η συνάρτηση είναι ανορθόγραφη ή έχει λανθασμένη χρήση κεφαλαίων

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





Παράδειγμα

Αρχικά, θα ορίσουμε μια συνάρτηση ' άθροισμα 'που επιστρέφει το άθροισμα δύο αριθμών' ένα ' και ' σι ”:

άθροισμα συνάρτησης ( α, β ) {

ΕΠΙΣΤΡΟΦΗ ένα + σι ;

}

Καλέστε τη συνάρτηση ' άθροισμα ' όπως και ' άθροισμα 'Περνώντας αριθμούς' 4 ' και ' 7 ”:



κονσόλα. κούτσουρο ( άθροισμα ( 4 , 7 ) )

Θα ρίξει ένα σφάλμα' άθροισμα δεν ορίζεται ”:

Πώς να το διορθώσετε;

Για να διορθώσετε αυτό το σφάλμα, βεβαιωθείτε ότι το όνομα της συνάρτησης είναι γραμμένο σωστά και έχει τη σωστή χρήση κεφαλαίων:

κονσόλα. κούτσουρο ( άθροισμα ( 4 , 7 ) ) ;

Τώρα, η συνάρτηση ' άθροισμα ' έχει κληθεί με επιτυχία και εκτυπώστε το άθροισμα δύο αριθμών ' 4 ' και ' 7 ”:

Λόγος 2: Η συνάρτηση ορίζεται σε διαφορετικό πεδίο

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

Παράδειγμα

Ορίστε μια συνάρτηση ' άθροισμα() 'με δύο παραμέτρους' ένα ' και ' σι 'μέσα στη συνάρτηση' Τυπώνω() ”:

εκτύπωση λειτουργίας ( ) {

άθροισμα συνάρτησης ( α, β ) {

κονσόλα. κούτσουρο ( ένα + σι ) ;

}

}

Καλέστε τη συνάρτηση ' άθροισμα() ”:

άθροισμα ( 5 , 10 ) ;

Δίνει ένα σφάλμα επειδή η sum() ορίζεται μέσα στη συνάρτηση print() αλλά έχει πρόσβαση έξω από το πεδίο:

Πώς να το διορθώσετε;

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

Καλέστε τη sum() μέσα στη συνάρτηση print() αφού την ορίσετε:

εκτύπωση λειτουργίας ( ) {

άθροισμα συνάρτησης ( α, β ) {

κονσόλα. κούτσουρο ( ένα + σι ) ;

}

άθροισμα ( 1 , 4 ) ;

}

Καλέστε τη μέθοδο print():

Τυπώνω ( ) ;

Παραγωγή

Ή μπορείτε επίσης να ορίσετε τη συνάρτηση ξεχωριστά και να την καλέσετε στο πεδίο μιας άλλης συνάρτησης ως εξής:

άθροισμα συνάρτησης ( α, β ) {

κονσόλα. κούτσουρο ( ένα + σι ) ;

}

Εδώ, θα καλέσουμε το sum() μέσα στη συνάρτηση print():

εκτύπωση λειτουργίας ( ) {

άθροισμα ( 5 , 10 ) ;

}

Καλέστε τη μέθοδο print() για να εκτελέσετε τη συνάρτηση ' άθροισμα() ”:

Τυπώνω ( ) ;

Το άθροισμα δύο αριθμών ' 5 ' και ' 10 ” έχουν εμφανιστεί:

Έχουμε συζητήσει τους λόγους και τις λύσεις για το JavaScript ' Σφάλμα μη καθορισμένης λειτουργίας ” (αλλά ορίζεται).

συμπέρασμα

Υπάρχουν δύο βασικοί λόγοι για τους οποίους το « λειτουργία δεν έχει οριστεί ' παρουσιάζεται σφάλμα μετά τον ορισμό της συνάρτησης, όπως ' Η συνάρτηση είναι ανορθόγραφη ή έχει λανθασμένη χρήση κεφαλαίων 'ή το ' η λειτουργία ορίζεται σε διαφορετικό εύρος '. Αυτό το άρθρο καθόρισε τους λόγους και τις λύσεις για το 'σφάλμα που δεν ορίζεται συνάρτηση' JavaScript (αλλά έχει οριστεί).