
En la jerarquía de objetos, tenemos en la parte superior el objeto window
.
Este objeto está situado justamente ahí, porque es el contenedor principal de todo el contenido que se visualiza en el navegador. Tan pronto como se abre una ventana (window
) en el navegador, incluso aunque no se cargue ningún documento en ella, este objeto window ya estará definido en memoria.
Además de la sección de contenido del objeto window
, que es justamente dónde se cargarán los documentos, el campo de influencia de este objeto, abarca también las dimensiones de la ventana, así como todo lo que rodea al área de contenido: las barras de desplazamiento, barra de herramientas, barra de estado, etc.
Cómo se ve en el gráfico de la jerarquía de objetos, debajo del objeto window
tenemos otros objetos como el navigator
, screen
, history
, location
y el objeto document
. Este objeto document
será el que contendrá toda la jerarquía de objetos, que tengamos dentro de nuestra página HTML.
Atención En los navegadores más modernos, los usuarios tienen la posibilidad de abrir las páginas tanto en nuevas pestañas dentro de un navegador, como en nuevas ventanas de navegador. Para JavaScript tanto las ventanas de navegador, como las pestañas, son ambos objetos window
.
Acceso a propiedades y métodos.
Para acceder a las propiedades y métodos del objeto window
, lo podremos hacer de diferentes formas, dependiendo más de nuestro estilo, que de requerimientos sintácticos. Así, la forma más lógica y común de realizar esa referencia, incluiría el objeto window
tal y como se muestra en este ejemplo:
window.nombrePropiedad window.nombreMétodo( [parámetros] )
Como puedes ver, los parámetros van entre corchetes, indicando que son opcionales y que dependerán del método al que estemos llamando.
Un objeto window
también se podrá referenciar mediante la palabra self
, cuando estamos haciendo la referencia desde el propio documento contenido en esa ventana:
self.nombrePropiedad self.nombreMétodo( [parámetros] )
Podremos usar cualquiera de las dos referencias anteriores, pero intentaremos dejar la palabra reservada self
, para scripts más complejos en los que tengamos múltiples marcos y ventanas.
Debido a que el objeto window
siempre estará presente cuando ejecutemos nuestros scripts, podremos omitirlo, en referencias a los objetos dentro de esa ventana. Así que, si escribimos:
nombrePropiedad nombreMétodo( [parámetros] )
También funcionaría sin ningún problema, porque se asume que esas propiedades o métodos, son del objeto de mayor jerarquía (el objeto window
) en el cuál nos encontramos.