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+"...ed ecco il risultato:
"); document.write("prima.due "+prima.due+"
"); document.write("seconda.uno "+seconda.uno+"
"); document.write("seconda.due "+seconda.due+"
");
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