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