
A veces, a la hora de llamar a alguna función o de acceder al contenido de alguna variable en Javascript, es posible que antes quieras comprobar si existe o no, para evitar así posibles repercusiones o errores sobre tu código. Ya vimos, con anterioridad, una forma de comprobar si una función existe o está definida en Javascript, y ahora vamos a ver otra forma de hacerlo.
Esto puedes hacerlo fácilmente mediante un condicional donde el condicionante sea el propio nombre de la función o variable a comprobar. Así, si, por ejemplo, quieres probar si una función llamada ‘mi_funcion‘ o una variable llamada ‘mi_variable‘ existe, solo tendrías que codificar el siguiente condicional:
1 2 3 4 5 6 7 8 9 | if ( mi_funcion ) { // Código a ejecutar si la función existe } //Si no existe, Javascript arroja un error de referencia inexistente if ( mi_variable ) { // Código a ejecutar si la variable existe } //Si no existe, Javascript arroja un error de referencia inexistente |
Esta forma de comprobar si una función o variable existe en Javascript presenta el inconveniente de que si dicha función o variable no existe, Javascript arrojará un error de referencia inexistente, lo que puede hacer que tu código por completo deje de ejecutarse.
Un método más óptimo de realizar la comprobación de la existencia de una función o variable en Javascript es mediante el objeto window, ya que cualquier función o variable que declaremos y definamos fuera de cualquier otro objeto, será un método o variable de éste. Por lo que la forma de realizar dicha llamada sería la siguiente:
1 2 3 4 5 6 7 8 9 | if ( window.mi_funcion ) { // Código a ejecutar si la función existe } //Si no existe, la ejecución continúa. if ( window.mi_variable) { // Código a ejecutar si la variable existe } //Si no existe, la ejecución continúa. |
De esta forma, en caso de que la función o variable no exista, el condicional no será ejecutado y la correspondiente ejecución de nuestro código continuará de forma normal. Todo lo contrario a lo que hubiera ocurrido si no hubiéramos realizado la comprobación a través del objeto windows, sino directamente sobre el nombre de la función o variable en cuestión.
