J'ai un script sur mon site Web qui appelle une fonction statically named quand elle est appelée:
childLoad();
La fonction childLoad()
n'est pas toujours définie bien qu'elle soit toujours appelée. Comment puis-je empêcher le script d'appeler cette fonction si elle n'existe pas?
if ( typeof childLoad == 'function' ) {
childLoad();
}
Vous pouvez utiliser l'évaluation de court-circuit:
childLoad && childLoad();
('childLoad' in this) && childLoad && childLoad();
Cela vous assurera que childLoad
peut être référencé, veille à ce que ce ne soit pas indéfini, puis appelez la fonction. Cela ne vérifie pas que cela fonctionne, mais j'estime personnellement que ce n'est pas nécessaire.
REMARQUE: this
n'est peut-être pas le contexte auquel vous faites référence si vous utilisez call
ou apply
. Cela dépend vraiment du reste de votre code.
if(typeof childLoad == 'function') {
childLoad();
}
Vous pouvez simplement vérifier:
if (childLoad)
childLoad()
Vous pourriez l'entourer en une tentative d'essayer!
<script>
/* yourfunction */
if(typeof yourfunction == 'function') {
yourfunction();
}
function yourfunction(){
//function code
}
</script>