Aquí es una respuesta tardía pero técnica.
le preguntas
son variables globales almacenados en el objeto específico?
La respuesta es sí; se almacenan en algo llamado, oficialmente, el objeto global. Este objeto se describe en la Sección 15.1 del official ECMAScript 5 Specification.
No se requiere que el objeto global tenga un nombre; pero puede consultar sus propiedades, como String
, isNaN
, y Date
simplemente usando su nombre. Su entorno host JavaScript colocará otras propiedades en el objeto global además de las requeridas por la especificación ECMAScript, como alert
o console
. En un navegador, puedo escribir el guión
alert("Hello world");
porque alert
es una propiedad del objeto global.
Tenga en cuenta que no tiene que haber una forma de acceder a este objeto global en absoluto, créalo o no. Lo bueno, sin embargo, es que muchos entornos host colocarán una propiedad en el objeto global cuyo valor es una referencia al objeto global en sí. En la mayoría de los buscadores web, esta propiedad se llama window
. Así podemos escribir:
alert("Hello");
window.alert("Hello");
window.window.alert("Hello");
window.window.window.window.window.alert("Hello");
y también podemos decir:
var x = 5;
alert(this.x);
y obtener 5
alertados.
Respuesta corta: cómo se refiere a la variable global depende de su entorno. –
¿Qué quiere decir exactamente con "medio ambiente"? El navegador, el alcance, el sistema operativo? – twiz
JavaScript se puede ejecutar en navegadores, en Adobe Photoshop, en navegadores VRML antiguos, dentro de motores que puede incorporar en programas Java y muchos otros sistemas host. Llamamos a estos los "entornos de host". Entonces sí, podría ser un navegador. Los programas de JavaScript manipulan objetos de estos entornos. –