sabato 3 maggio 2014

Creazione di un'istanza da un costruttore (seguendo un tutorial)

Seguiamo un po' questo tutorial, perchè mi sembra ottimo.

Creiamo un costruttore Veicolo.
function Veicolo(){
 this.velocita=0;
 this.passeggeri=0;
}
var Auto=new Veicolo();

document.write(Auto.passeggeri+"<br>");

Auto.passeggeri=1;

document.write(Auto.passeggeri+"<br>");
Output:
0
1

Ho creato un'istanza di Veicolo, e poi ho modificato nell'istanza la quantità di passeggeri.
Posso modificare anche la velocità, se voglio:
function Veicolo(){
 this.velocita=0;
 this.passeggeri=0;
}
var Auto=new Veicolo();

document.write(Auto.velocita+"<br>");

Auto.velocita=3;

document.write(Auto.velocita+"<br>");
Output:
0
3


Bene, adesso faccio come nell'esempio, e definisco il numero di passeggeri come parametro, in modo che all'atto in cui viene creata l'istanza il numero di passeggeri viene incrementato automaticamente:
function Veicolo(passeggeri){
 this.velocita=0;
 this.passeggeri=passeggeri;
}
var Auto=new Veicolo(4);

document.write(Auto.passeggeri+"<br>");
4

Posso fare che il numero di passeggeri è uguale al parametro solo se il parametro supera 0, come nell'esempio: questo fa in modo che se creo l'istanza senza parametro il numero di passeggeri mi risulta comunque uguale a zero se ho inizializzato la variabile col valore di 0.
function Veicolo(passeggeri){
 this.velocita=0;
 this.passeggeri=0;

 if(passeggeri>0) this.passeggeri=passeggeri;
}
var Auto=new Veicolo();

document.write(Auto.passeggeri+"<br>");
0

...se non avessi inizializzato la proprietà, senza parametro otterrei un valore undefined:
function Veicolo(passeggeri){
 this.velocita=0;


 if(passeggeri>0) this.passeggeri=passeggeri;
}
var Auto=new Veicolo();

document.write(Auto.passeggeri+"<br>");
undefined


Bene: ecco dunque il costruttore!
function Veicolo(passeggeri){
 this.velocita=0;
 this.passeggeri=0;

 if(passeggeri>0) this.passeggeri=passeggeri;
}
var Auto=new Veicolo();

document.write(Auto.passeggeri+"<br>");

Nessun commento:

Posta un commento