web-dev-qa-db-fra.com

Erreur de vérification jQuery isFunction "la fonction n'est pas définie"

Je veux vérifier si une fonction existe ou non avant d'essayer de l'exécuter. Voici mon code:

if ($.isFunction(myfunc())) {
    console.log("function exist, run it!!!");
}

Cependant, lorsque la fonction n'est pas disponible, j'ai l'erreur:

myfunc n'est pas défini

Comment puis-je faire la détection? Voici mon test de travail: http://jsfiddle.net/3m3Y3/

48
user1995781

En mettant () après le nom de la fonction, vous essayez de l’exécuter directement à la première ligne.

Au lieu de cela, vous devriez simplement utiliser le nom de la fonction sans l'exécuter:

if ($.isFunction(myfunc)) {

Cependant - Si myfunc n'est pas une fonction et n'est pas une autre variable définie, une erreur sera toujours renvoyée, mais une autre . Quelque chose comme myfunc is not defined.

Vous devriez vérifier que le nom existe, puis vérifier que c'est une fonction, comme ceci:

if (typeof myfunc !== 'undefined' && $.isFunction(myfunc)) {

Exemple de travail ici: http://jsfiddle.net/sXV6w/

133
jcsanyi

essaye ça

if(typeof myfunc == 'function'){
    alert("exist");
}else{
    alert("not exist");
}
13
user2249160