venerdì 2 maggio 2014

Funzione intercambiabile per l'oggetto window e per altri oggetti.

Creo una funzione StampaNome, che mostra this.nome

Partendo da un costruttore Oggetto, creo due istanze Uomo e Cane, il primo con un nome da uomo e il secondo con un nome da cane.
Prima chiamo la funzione StampaNome da finestra. Quindi la chiamo dalle istanze:
function StampaNome(){
 document.write(this.nome+"<br>")

}

function Oggetto(nome){
 this.nome=nome;
 this.StampaNome=StampaNome;
}

Uomo=new Oggetto("Antonello");
Cane=new Oggetto("Rex");


StampaNome();
Uomo.StampaNome();
Cane.StampaNome();
Output:
undefined
Antonello
Rex


La prima volta la funzione viene chiamata da finestra, e dà come risultato undefined perché la finestra non ha questa proprietà.
La seconda e la terza volta, viene chiamata da istanze di oggetto e dà come risultato la proprietà nome per ognuna delle due istanze.
Ora provo a creare una proprietà nome per la finestra, definendo una variabile globale.
var nome="FINESTRA";

function StampaNome(){
 document.write(this.nome+"<br>")

}

function Oggetto(nome){
 this.nome=nome;
 this.StampaNome=StampaNome;
}

Uomo=new Oggetto("Antonello");
Cane=new Oggetto("Rex");


StampaNome();
Uomo.StampaNome();
Cane.StampaNome();
Output:
FINESTRA
Antonello
Rex
Perfetto! Come volevasi dimostrare!

Nessun commento:

Posta un commento