Tester si une fonction existe en Javascript
Pour tester l'existence d'une fonction en Javascript, c'est-à-dire savoir si une fonction est déclarée ou pas, il existe plusieurs méthodes. La première chose à savoir c'est que lorsqu'on appelle une fonction qui n'existe pas en Javascript, il se produit une exception javascript : ReferenceError: une_fonction_exists is not defined. Donc détecter l'existence ou non d'une fonction sert justement à éviter cette erreur.
Il existe 2 méthodes pour savoir si une fonction existe :
Méthode 1 : typeof undefined
La première solution c'est de tester le type de la référence de la fonction (autrement dit : son nom), grâce à la fonction typeof, une fonction native du langage javascript qui retourne le type d'une variable. Si la variable ou la fonction n'existe pas, la fonction typeof va retourner la constante undefined :
if( typeof(une_fonction_inexistante) == undefined ){ console.log("La fonction existe"); } else { console.log("La fonction n'existe pas"); }
Étant donné que la fonction typeof est en réalité une instruction native du langage javascript (comme if, else, switch...), les parenthèses ne sont pas obligatoire, on peut aussi écrire ceci :
if( typeof une_fonction_inexistante == undefined ){
Si vous voulez en savoir plus c'est par ici : quelle version d'excel choisir ?.
Par contre il ne faut pas tester directement la variable sans utiliser typeof, car dans ce cas l'exception javascript est quand même levée, malgré la présence du teste d'égalité.
Méthode 2 : try catch exception
L'alternative à typeof, c'est d'utiliser un try catch pour attraper l'exception :
try{ une_fonction_inexistante(); } catch(err){ if(err instanceof ReferenceError){ console.log("La fonction n'existe pas"); } }
Fini de lire cette page ? allez faire un tour ici : formulaire de connexion, ça peut vous intéresser.