Est-il possible de juger si un nom de fonction existe avant de l'appeler?javascript: comment juger qu'un nom de fonction existe?
Répondre
-vous un chèque typeof
pour la fonction, par exemple:
if(typeof this["functionName"] != "undefined") {
alert("uh oh, doesn't exist");
}
Si vous devez vérifier si elle existe et est une fonction pour être encore plus sûr:
if(typeof this["functionName"] == "function") {
this["functionName"](); //it exists, call it
}
Ou la version la plus détendue:
if(this["functionName"]) this["functionName"]();
Si le nom ne change pas (par ex. Je mal interprété la question) il suffit d'utiliser la notation par points, comme ceci:
if(this.functionName) this.functionName();
Ou bien sûr, il ne doit pas être this
... quel que soit l'objet que vous vérifiez, utilisez que, si elle est une utilisation globale de la fonction window
.
que se passe-t-il si 'functionName' n'est pas une fonction? – jAndy
@jAndy - Il veut une fonction à appeler qui peut ou peut ne pas être définie ... vous pouvez l'inverser bien sûr et vérifier le '.toString()' ou 'typeof' pour' function', mais je dirais que vous avoir un mauvais chevauchement de noms dans ces cas ... souvent vous voulez les deux, par exemple ce peut être une fonction ou un sélecteur, ou un bool, il y a plusieurs exemples de ceci à travers les frameworks :) –
Je ne sais pas .. 'this ["functionName")() 'tomberait probablement comme désastreux s'il ne s'agit pas d'un objet fonction. – jAndy
dépend à peu près sur la portée que vous êtes.
Mais en général if('function_name_to_check' in this)
reviendriez true
s'il y a une propriété dans la portée globale ou locale qui a ce nom.
Cette vérification doit être suivie d'un test supplémentaire pour le type:
if(typeof this.function_name_to_check === 'function') { }
pour être sûr que ce soit une fonction.
Si vous ne souhaitez que pour éviter les erreurs, vous pouvez tourner les tables:
try{function2call();}
catch(e){alert('function2call() doesn\'t exist');}
C'est une mauvaise idée dans tous les cas, les blocs 'try/catch' ont de réels problèmes de performance, sans compter que lancer une exception est * way * plus cher que le' if' vérifie le type. –
Alors, que voulez-vous dire pourquoi existe-t-il une construction comme try/catch, si elle est mauvaise dans tous les cas? Essayez 'alert ('alert est une fonction:' + (typeof alert == 'function'));' dans MSIE, cela retournera-t-il l'attendu? –
- 1. Comment juger la fonction animée complète et montrer quelque chose?
- 2. Comment juger la couleur d'UILabel?
- 3. javascript collision de nom de fonction
- 4. nom de la fonction variable Javascript
- 5. nom de la fonction (e) en Javascript
- 6. Valider un nom de fonction JavaScript
- 7. Comment vérifier si une fonction javascript existe de silverlight
- 8. Comment trouver une fonction par nom de fonction
- 9. Javascript - Variable dans le nom de la fonction, possible?
- 10. Comment juger le nombre de compartiments pour TBucketList
- 11. Comment puis-je obtenir le nom de la fonction dans une fonction JavaScript?
- 12. Vérifiez le nom de la fonction en Javascript
- 13. Existe-t-il une fonction opposée de preventDefault() dans JavaScript?
- 14. Existe-t-il un moyen de récupérer un nom de fonction PowerShell à partir d'une fonction?
- 15. fonction de rappel JavaScript
- 16. fonction d'appel jquery par nom
- 17. Déterminez quel cadre (nom) a appelé une fonction en JavaScript
- 18. modification de fonction javascript
- 19. fonction de rappel JavaScript
- 20. Comment inclure un appel de fonction JavaScript en tant que paramètre sur une autre fonction JavaScript?
- 21. Dérivation nom de la fonction
- 22. existe par modèle de nom de fichier
- 23. Nom de la fonction de décalage?
- 24. Existe-t-il un moyen d'obtenir le nom d'une fonction dans une fonction C++?
- 25. Comment obtenir un nom de domaine via JavaScript?
- 26. javascript: appel de fonction se
- 27. Comment puis-je déterminer le nom d'une fonction de gestionnaire d'événements JavaScript?
- 28. JavaScript - Comment appeler une fonction à partir d'un nom de chaîne et passer un objet tableau?
- 29. Récupère l'objet-fonction JavaScript de son nom sous forme de chaîne?
- 30. Comment personnaliser cette fonction javascript?
essayé? 'if (name_of_funcion) {/ * que faire ensuite * /}' – Cipi