Existencia de Objetos

Existe alguna función o propiedad que me indique si existe un objeto, porque a veces (sobre todo en problemas de velocidad de carga) necesitaría saber si existe el objeto antes de llamar a una de sus propiedades (el famoso ERROR en JAVASCRIPT no es muy decorativo ya sabes).

1 respuesta

Respuesta
1
Efectivamente, el problema de si existe un objeto, una propiedad de un objeto o simplemente una variable es algo peliagudo que, más tarde o más temprano, todo programador tendrá que resolver...
El caso más sencillo es la comprobación de la existencia de una propiedad de un objeto. Supón que no sabes en qué navegador está ejecutándose tu script. Si quieres determinar si es Netscape 4.x, la alternativa más sencilla es, simplemente, comprobar si existe la propiedad layers del objeto document. Esto es tan fácil como:
if (document.layers) { // código para NS4
} else { // otro código para otros navegadores
}
A Explorer se le puede detectar mirando document. All. Esto funciona porque cualquier cosa que vaya dentro de la condición del if se evalúa a true o false, y si la propiedad del objeto que pones no existe, el resultado es null, que equivale lógicamente a false.
La comprobación de la existencia de un objeto en general (no de una propiedad de un objeto) es más complicada... hasta que "alguien" nos sopla que todas las variables que declaras en una página son, en realidad, propiedades del objeto window. Así pues, si no sabes si la variable 'hola' ha sido declarada o no...
if (window.hola) { // la variable existe
} else { // la variable no existe...
}
¿Fácil, no? Espero que te sirva, pero recuerda estas reglas para que tengas que usar esta técnica lo menos posible:
1.- Los scripts se cargan (y por tanto las funciones y variables se definen) de arriba abajo, según se carga el texto de la página (no las imágenes, que van por otras conexiones HTTP). Por tanto, pon todo lo que puedas en scripts en la cabecera (HEAD).
2.- Si cargas ficheros .js (librerías de funciones javascript), hazlo siempre antes de cualquier script que declares en tu página.
3.- Procura ejecutar el mínimo código posible en tiempo de carga. Encapsúlalo en funciones, y haz todas las llamadas con el evento onLoad de BODY, que se dispara cuando la página ya ha terminado de cargarse.
Si sigues esas tres reglas, raras veces necesitarás la técnica que te he contado.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas