<script>
function Veicolo(passeggeri){
this.velocita=0;
this.passeggeri=0;
if(passeggeri>0)
this.passeggeri=passeggeri;
}
var auto=new Veicolo(1);
alert(auto.passeggeri);
</script>
Questo sarebbe il costruttore di un oggetto.Ossia, qualcosa che assomiglia alle classi, credo...
Ha due proprietà, l'una che prende il valore del parametro e l'altra che è impostata a zero senza venir modificata inizialmente all'atto in cui si istanzia l'oggetto.
Ecco, adesso modifico la proprietà passeggeri subito e poi modifico l'altra:
<script>
function Veicolo(passeggeri){
this.velocita=0;
this.passeggeri=0;
if(passeggeri>0)
this.passeggeri=passeggeri;
}
var auto=new Veicolo(1);
var auto2=new Veicolo(1);
auto2.velocita=13;
alert("auto: velocità "+auto.velocita+" passeggeri "+auto.passeggeri);
alert("auto2: velocità "+auto2.velocita+" passeggeri "+auto2.passeggeri);
</script>
Aggiungiamo un metodo...
Ecco: aggiungiamo il metodo scritto all'esterno del costruttore. Provo a esercitarmi...
<script>
function carica(passeggeri){
this.passeggeri+=passeggeri;
}
function Veicolo(passeggeri){
this.velocita=0;
this.passeggeri=0;
if(passeggeri>0)
this.passeggeri=passeggeri;
this.carica=carica;
}
var auto=new Veicolo(1);
alert("auto: velocità "+auto.velocita+" passeggeri "+auto.passeggeri);
auto.carica(4);
alert("auto: velocità "+auto.velocita+" passeggeri "+auto.passeggeri);
</script>
Funziona egregiamente!
Bene... finora niente di particolarmente trascendentale, e mi sono esercitato un po' sull'aggiungere metodi scritti all'esterno del costruttore stesso.
Ecco invece l'aggiunta di un metodo scritto all'interno del costruttore:
<script>
function Veicolo(passeggeri){
this.velocita=0;
this.passeggeri=0;
if(passeggeri>0)
this.passeggeri=passeggeri;
this.carica=function(passeggeri){
this.passeggeri+=passeggeri;
}
}
var auto=new Veicolo(1);
alert("auto: velocità "+auto.velocita+" passeggeri "+auto.passeggeri);
auto.carica(4);
alert("auto: velocità "+auto.velocita+" passeggeri "+auto.passeggeri);
</script>
Questo si chiama incorporare il metodo all'interno della funzione costruttore.La sua utilità è evitare i conflitti nel caso si debba creare un metodo con nome analogo per un altro oggetto.
Nessun commento:
Posta un commento