Homa Page di Daniele Franceschini
Oggetto globale e Oggetto chiamata
Quando l'interprete JavaScript parte, una delle prime cose che esegue, prima di mandare in esecuzione qualsiasi codice, è la creazione di un oggetto globale. In realtà non esiste un oggetto che possa essere referenziato ma il meccanismo iniziale dell'interprete può essere così rappresentato.
Le variabile globali dei nostri script possono essere considerate proprietà di questo oggetto globale, lo stesso vale anche per le funzioni e le proprità dell'ambiente JavaScript come ad esempio parseInt() o Math.
L'oggetto window fa le veci di questo oggetto globale infatti ha una proprietà autoreferenziale che può essere utilizzata al posto dell'oggetto globale, pertanto tutte le proprietà e le funzioni di base sono da esso definite.
Se le variabili globali sono proprietà dell'oggetto globale le variabili locali sono anch'esse proprità di un'altro oggetto speciale, detto anche oggetto chiamata.
Questo oggetto ha una vita più breve rispetto all'oggetto globale ma la sua funzione è analoga. Durante l'esecuzione di una funzione, gli argomenti e le sua variabili locali sono memorizzate come proprietà dell'oggetto chiamata. Questo meccanismo permette permette di evitare la sovrascrittura delle variabili globali.
Non a caso in JavaScript le funzioni possono essere considerate come delle classi nella programmazione ad oggetti e possono essere istanziate proprio come una classe, come ad esempio:function Rectangle(w,h){
this.width = w;
this.height = h;
}
var rect = new Rectangle(3,6); //rect è un oggetto



