<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