Ejecutar una función que no ha sido definida genera un error que puede hacer que un script al completo deje de funcionar. Esto pasa con cierta frecuencia cuándo se utiliza un mismo script en varias zonas de una web. En una página puede ejecutarse sin problemas cuándo el script dependiente, dónde se define la función, ha sido cargado. En otra página dónde ese script no es necesario no se carga y entonces aparece el error.

Se podría solucionar haciendo diferentes versiones del script, pero es mucho más fácil simplemente comprobar si la función existe antes de intentar ejecutarla. Basta con comprobar el typeof:

if(typeof nombreFumcion === 'function') {
    //Es seguro ejecutar la función
    nombreFuncion();
}

jQuery ofrece un método alternativo:

if( jQuery.isFunction( nombreFuncion ) ) {
    //Es seguro ejectura la función
    nombreFuncion();
}

Sin embargo, como nombreFuncion se pasa como variable, si no está definida seguirá generando error. Con jQuery es más seguro hacer algo así:

if( typeof nombreFuncion !== 'undefined' && jQuery.isFunction( nombreFuncion ) ) {
    //Es seguro ejectura la función
    nombreFuncion();
}
  • Luis Miguel Devloper

    Gracias por el aporte,

  • Arnold Castilla

    Que Buen Articulo, de Mucho Ayuda!