Erreur de fonction JavaScript non définie (MAIS ELLE EST DÉFINIE)

Erreur De Fonction Javascript Non Definie Mais Elle Est Definie



En Javascript, ' fonction non définie ' est une erreur courante qui se produit lorsque le programme tente d'utiliser une fonction qui n'a pas été déclarée ou définie dans la portée actuelle. Ce message d'erreur peut prêter à confusion car parfois la fonction est réellement définie dans le code, mais cela entraîne toujours l'erreur.

Cet article décrira l'« erreur de fonction non définie » JavaScript pendant qu'elle est définie.

Erreur de fonction JavaScript non définie (MAIS ELLE EST DÉFINIE)

Parfois, la fonction est définie dans le code, mais vous pouvez toujours faire face à l'erreur suivante :









Il y a deux raisons principales pour lesquelles l'erreur ci-dessus se produit après la définition de la fonction, qui sont répertoriées ci-dessous :



Raison 1 : la fonction est mal orthographiée ou a une capitalisation incorrecte

Parfois, la fonction est appelée avec une orthographe incorrecte. Comme JavaScript est un langage sensible à la casse, l'interpréteur JavaScript n'a pas pu le trouver et lancer un ' fonction non définie ' erreur.





Exemple

Dans un premier temps, nous allons définir une fonction ' été ' qui renvoie la somme de deux nombres ' un ' et ' b ” :

somme de fonction ( un B ) {

retour un + b ;

}

Appelez la fonction ' été ' comme ' somme « en passant des chiffres » 4 ' et ' 7 ” :



console. enregistrer ( somme ( 4 , 7 ) )

Il lancera une erreur ' la somme n'est pas définie ” :

Comment le réparer?

Pour corriger cette erreur, assurez-vous que le nom de la fonction est correctement orthographié et que la casse est correcte :

console. enregistrer ( été ( 4 , 7 ) ) ;

Maintenant, la fonction ' été ' a été appelé avec succès et affiche la somme de deux nombres ' 4 ' et ' 7 ” :

Raison 2 : la fonction est définie dans une portée différente

En JavaScript, chaque fonction a sa portée et une fonction ne peut accéder qu'aux variables et fonctions définies dans sa propre portée. Si une fonction est définie dans une portée différente, elle peut ne pas être accessible à la portée actuelle, ce qui entraîne un ' fonction non définie ' erreur.

Exemple

Définir une fonction ' somme() « à deux paramètres » un ' et ' b ' à l'intérieur de la fonction ' imprimer() ” :

impression de fonction ( ) {

fonction somme ( un B ) {

console. enregistrer ( un + b ) ;

}

}

Appelez la fonction ' somme() ” :

somme ( 5 , dix ) ;

Cela donne une erreur car sum() est défini à l'intérieur de la fonction print() mais accessible en dehors de la portée :

Comment le réparer?

Assurez-vous que la fonction est définie dans la portée appropriée et qu'elle est accessible à partir de l'endroit où elle est appelée. Par exemple, si la fonction est définie à l'intérieur d'une autre fonction, elle peut ne pas être accessible de l'extérieur.

Appelez sum() dans la fonction print() après l'avoir définie :

impression de fonction ( ) {

fonction somme ( un B ) {

console. enregistrer ( un + b ) ;

}

somme ( 1 , 4 ) ;

}

Appelez la méthode print() :

imprimer ( ) ;

Sortir

Ou vous pouvez également définir la fonction séparément et l'appeler dans la portée d'une autre fonction comme suit :

fonction somme ( un B ) {

console. enregistrer ( un + b ) ;

}

Ici, nous appellerons le sum() à l'intérieur de la fonction print() :

impression de fonction ( ) {

somme ( 5 , dix ) ;

}

Appelez la méthode print() pour exécuter la fonction ' somme() ” :

imprimer ( ) ;

La somme de deux nombres ' 5 ' et ' dix ” ont été affichés :

Nous avons discuté des raisons et des solutions pour le JavaScript ' fonction non définie erreur » (mais c'est défini).

Conclusion

Il y a deux raisons principales pour lesquelles le « fonction non définie ' Une erreur se produit après la définition de la fonction, telle que ' la fonction est mal orthographiée ou a une casse incorrecte ' ou la ' la fonction est définie dans une portée différente ”. Cet article a défini les raisons et les solutions de l'erreur JavaScript 'fonction non définie' (mais elle est définie).