El código JavaScript en sí debe estar contenido dentro de un objeto. Por ejemplo, cuando se crea un código JavaScript para un entorno de navegador web, JavaScript está contenido y se ejecuta dentro de ventana
objeto. Esta ventana
se considera que el objeto es el "objeto principal" o, a veces, se lo denomina de manera confusa "el objeto global". Todas las implementaciones de JavaScript requieren el uso de un solo objeto principal.
El objeto principal está configurado por JavaScript detrás de escena para encapsular el código definido por el usuario y para albergar el código nativo con el que JavaScript viene empaquetado previamente. El código definido por el usuario es colocado por JavaScript dentro del objeto principal para su ejecución. Verifiquemos esto como corresponde a un navegador web..
En el siguiente ejemplo, estoy creando algunos valores de JavaScript y verificando que los valores se colocan en la cabecera ventana
objeto.
Muestra: sample64.html
Siempre debe tener en cuenta que cuando escriba JavaScript, se escribirá en el contexto del objeto principal. El material restante en este capítulo supone que usted es consciente de que el término "objeto principal" es sinónimo de "objeto global".
El objeto principal es el alcance / contexto más alto disponible en un entorno de JavaScript.
JavaScript viene con algunas funciones predefinidas. Las siguientes funciones nativas se consideran métodos del objeto principal (como en un navegador web), window.parseInt ('500')
). Puede pensar en estos como funciones y métodos listos para usar (del objeto principal) proporcionados por JavaScript.
decodeURI ()
decodeURIComponent ()
encodeURI ()
encodeURIComponent ()
eval ()
isFinite ()
isNaN ()
parseFloat ()
parseInt ()
No confunda el objeto principal con propiedades globales o variables globales contenidas dentro del alcance global. El objeto principal es un objeto que contiene todos los objetos. El término "propiedades globales" o "variables globales" se utiliza para referirse a valores directamente contenidos dentro del objeto principal y no están específicamente orientados a otros objetos. Estos valores se consideran globales porque no importa dónde se esté ejecutando el código actualmente, en términos de alcance, todo el código tiene acceso (a través de la cadena de alcance) a estas propiedades y variables globales..
En la siguiente muestra, coloco un foo
propiedad en el ámbito global, luego acceda a esta propiedad desde un ámbito diferente.
Muestra: sample65.html
Si hubiera colocado el foo
propiedad fuera del ámbito global, la console.log
la función volvería indefinido
. Esto se demuestra en el siguiente ejemplo de código..
Muestra: sample66.html
En el entorno del navegador, esta es la razón por la que los métodos de propiedad global (por ejemplo,, window.alert ()
) Se puede invocar desde cualquier ámbito. Lo que necesita quitar de esto es que cualquier cosa en el ámbito global está disponible para cualquier ámbito, y por lo tanto obtiene el título de "variable global" o "propiedad global"..
Hay una ligera diferencia entre usar var
y no usar var
en el ámbito global (propiedades globales vs. variables globales). Eche un vistazo a este intercambio de desbordamiento de pila para ver los detalles: Diferencia entre usar var y no usar var en JavaScript.
Normalmente hay dos formas de hacer referencia al objeto principal. La primera forma es simplemente hacer referencia al nombre dado al objeto principal (como, en un navegador web, esto sería ventana
). La segunda forma es usar el esta
palabra clave en el ámbito global. Cada uno de estos se detalla en la siguiente muestra..
Muestra: sample67.html
En este ejemplo, almacenamos explícitamente una referencia al objeto principal en dos variables que luego se utilizan para obtener acceso al global foo
variable.
Normalmente, una referencia al objeto principal no se usa porque está implícita. Por ejemplo, en el entorno del navegador. ventana.alert
y alerta()
son esencialmente la misma afirmación. JavaScript llena los espacios en blanco aquí. Porque el ventana
objeto (el objeto principal) es el último objeto verificado en la cadena de alcance para un valor, el ventana
El objeto está esencialmente siempre implícito. En el siguiente ejemplo, aprovechamos la alerta()
Función que está contenida en el ámbito global..
Muestra: sample68.html
Asegúrese de comprender que el objeto head está implícito incluso cuando no lo incluye explícitamente, porque el objeto head es la última parada en la cadena de alcance.
Siendo explícito (por ejemplo, window.alert ()
vs. alerta()
) cuesta un poco más con respecto al rendimiento (qué tan rápido se ejecuta el código). Es más rápido si confía solo en la cadena de alcance y evita hacer referencia explícita al objeto principal, incluso si sabe que la propiedad que desea está contenida en el alcance global.