Adesso inizializzo una proprietà nel costruttore e poi la modifico nel prototipo
function Oggetto(){ this.prop="Prima proprieta"; } var Istanza=new Oggetto(); alert(Istanza.prop); Oggetto.prototype.prop="Prima proprieta modificata"; alert(Istanza.prop);Ottengo: Prima proprieta e Prima proprieta.
La proprietà inizializzata nel costruttore non può più essere modificata nel prototipo.
Ora invece di inizializzarla nel costruttore la inizializzo nel prototipo:
function Oggetto(){ } var Istanza=new Oggetto(); Oggetto.prototype.prop="Prima proprieta"; alert(Istanza.prop); Oggetto.prototype.prop="Prima proprieta modificata"; alert(Istanza.prop);E ottengo Prima proprieta e Prima proprieta modificata.
Dunque, la proprietà che non è stata inizializzata nel costruttore può essere modificata nel prototipo.
Per questo, se ho aggiunto una proprietà nel prototipo, posso poi modificarla.
function Oggetto(){ this.prop="Prima proprieta"; } var Istanza=new Oggetto(); alert(Istanza.prop2); Oggetto.prototype.prop2="Seconda proprieta"; alert(Istanza.prop2); Oggetto.prototype.prop2="Seconda proprieta modificata"; alert(Istanza.prop2);ottenendo rispettivamente: Nulla, Seconda proprieta e Seconda proprieta modificata.
Nessun commento:
Posta un commento