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();
}
Compartir

Mi nombre es Alexander fundador y CEO, y me gusta llamarme un Geek. Amo la informática, tecnología y todo lo que está relacionado con ella. Inicié este sitio con la intención de compartir conocimientos como cursos en línea, tutoriales y videotutoriales. Estoy muy entusiasmado con la información que he descubierto y compartido hasta el momento. La verdad es que lo he hecho con el mayor de los gustos. Así es, soy un Geek con una visión para compartir conocimiento. Leer mas... 2c611u