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 RexLa 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 RexPerfetto! Come volevasi dimostrare!
Nessun commento:
Posta un commento