sabato 3 maggio 2014

Ereditarietà tramite prototipo in JavaScript.

Posso far ereditare ancora, soltanto tramite modifiche del prototipo?

Creo un altro costruttore, e riporto il prototipo di Aereo.
function Veicolo(passeggeri){
 this.velocita=0;
 this.passeggeri=0;
 
 this.carica=function(passeggeri){
  if(passeggeri>0) this.passeggeri+=passeggeri;
 }
 
 this.carica(passeggeri);
}

function Aereo(passeggeri){
 this.passeggeri=0;
 this.carica(passeggeri);
}

Aereo.prototype=new Veicolo();


function Missile(passeggeri){

this.carica(passeggeri);
}

Missile.prototype=new Aereo();

var Apollo=new Missile(6);

document.write(Apollo.passeggeri);
Funziona perfettamente! La classe Missile ha ereditato il prototipo di Aereo. E ne ha ereditato una funzione che questo ha ereditato tramite il prototipo dal costruttore della classe Veicolo.

Dunque a che serve modificare il costruttore di una classe derivata, se questa ereditarietà si può ottenere solo col prototipo?

Nessun commento:

Posta un commento