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