Penso che troverete sulla maggior parte dei browser, essi sono memorizzati in window
.
Tentativo di debug psichico inverosimile: hai provato questo in jsFiddle? O forse in Firebug? Se è così, probabilmente stai vedendo undefined
per tutti e tre perché in quel caso
il codice viene eseguito in un frame; quindi ha un diverso
window
oggetto (credo)
il codice è in realtà avvolto:
window.addEvent('load', function() {
var test="stuff";
console.log(window.test);
console.log(document.test);
console.log(this.test);
});
Si può vedere dal frammento di sopra da jsFiddle che test
è non una variabile globale, il che spiega il motivo per cui hasn' t stato allegato a window
.
Non sono esperto, ma questa risposta sembra essere accurata da quello che posso dire in Chrome, Firefox, Safari e Opera. Per verificare, ho creato un file HTML con il seguente contenuto e caricato in ogni browser: basta
<script type="text/javascript">
var test = "stuff";
alert(window.test);
</script>
Certo, "roba" ogni volta.
fonte
2012-07-20 04:40:47
Risposta breve: il modo in cui si fa riferimento alla variabile globale dipende dal proprio ambiente. –
Cosa intendi esattamente per "ambiente"? Il browser, l'ambito, il sistema operativo? – twiz
JavaScript può essere eseguito nei browser, in Adobe Photoshop, nei vecchi browser VRML, all'interno di motori che è possibile incorporare nei programmi Java e in molti altri sistemi host. Li chiamiamo "ambienti host". Quindi sì, potrebbe essere un browser. I programmi JavaScript manipolano oggetti da questi ambienti. –