Comment pouvez-vous dire si on définit une fonction en Javascript ?
Je veux faire quelque chose comme
mais qui me fait une erreur « le rappel n’est pas une fonction » rappel n’est pas défini.
Comment pouvez-vous dire si on définit une fonction en Javascript ?
Je veux faire quelque chose comme
mais qui me fait une erreur « le rappel n’est pas une fonction » rappel n’est pas défini.
Toutes les réponses actuelles utilisent une chaîne littérale, laquelle je préfère ne pas avoir dans mon code si possible - ce n’est pas :
Personnellement, j’ai essayer de réduire le nombre de chaînes traîner dans mon code...
Aussi, alors que je suis conscient que `` est un opérateur et non une fonction, il y a peu de dommages en utilisant la syntaxe qui fait apparaître que ce dernier.
Nouveau pour le JavaScript je ne suis pas sûr si le comportement a changé, mais la solution donnée par Jason Bunting (6 ans) ne fonctionnera pas si possibleFunction n'est pas défini.
function isFunction(possibleFunction) {
return (typeof(possibleFunction) == typeof(Function));
}
Cela permettra de jeter un ReferenceError: possibleFunction is not defined
d'erreur que le moteur essaie de résoudre le symbole possibleFunction (comme mentionné dans les commentaires de Jason réponse)
Pour éviter ce comportement, vous pouvez passer le nom de la fonction que vous voulez vérifier s'il existe. Donc
var possibleFunction = possibleFunction || {};
if (!isFunction(possibleFunction)) return false;
Ceci définit une variable à la fonction que vous souhaitez consulter ou l'objet vide si elle n'est pas définie et permet d'éviter les problèmes mentionnés ci-dessus.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.