Vediamo di capirci qualcosa...
Creo una funzione, come costruttore dal quale istanziare oggetti.
function Prima(){
this.uno=10;
this.due=20;
}
Ora creo un'altra funzione:
function Prima(){
this.uno=10;
this.due=20;
}
function Seconda(){}
Istanzio...
function Prima(){
this.uno=10;
this.due=20;
}
function Seconda(){}
var prima=new Prima();
var seconda=new Seconda();
e do il comando di mettere a video il valore delle proprietà uno e due del primo oggetto, istanziato dalla classe Prima, e del secondo oggetto, istanziato dalla classe Seconda.
function Prima(){
this.uno=10;
this.due=20;
}
function Seconda(){}
var prima=new Prima();
var seconda=new Seconda();
document.write("prima.uno "+prima.uno);
document.write("prima.due "+prima.due);
document.write("seconda.uno "+seconda.uno);
document.write("seconda.due "+seconda.due);
e ottengo:
prima.uno 10 prima.due 20 seconda.uno undefined seconda.due undefined
Ora istituisco la classe Seconda come erede della classe Prima, usando la funzione prototype:
function Prima(){
this.uno=10;
this.due=20;
}
function Seconda(){}
Seconda.prototype=new Prima();
var prima=new Prima();
var seconda=new Seconda();
document.write("prima.uno "+prima.uno+"
");
document.write("prima.due "+prima.due+"
");
document.write("seconda.uno "+seconda.uno+"
");
document.write("seconda.due "+seconda.due+"
");
...ed ecco il risultato:
prima.uno 10 prima.due 20 seconda.uno 10 seconda.due 20La riga marcata in rosso, che usa il prototype, è dunque il modo di rendere una classe erede di un'altra: essa presenta le stesse proprietà di un'altra classe, che quindi diventa genitrice come nei classici linguaggi orientati agli oggetti.
Nessun commento:
Posta un commento