<script>
function classe(nome){
this.chiama=function(){
alert(nome);
}
}
function inizia(){
var oggetto=new classe("Cicciobello");
oggetto.chiama();
}
window.addEventListener("load",function(){inizia()});
</script>
Bene.Ho creato un'istanza oggetto di una classe classe.
Ora voglio creare una classe che eredita da classe...
Ecco:
<script>
function classe(nome){
this.chiama=function(){
alert(nome);
}
}
function figlia(nome){
classe.call(this,nome);
}
function inizia(){
var oggetto=new classe("Cicciobello");
oggetto.chiama();
var derivata=new figlia("Mario");
derivata.chiama();
}
window.addEventListener("load",function(){inizia()});
</script>
E ottengo una seconda MessageBox con il nome "Mario". Quindi funziona.Come controprova tolgo la riga con scritto classe.call(this,nome);
<script>
function classe(nome){
this.chiama=function(){
alert(nome);
}
}
function figlia(nome){
}
function inizia(){
var oggetto=new classe("Cicciobello");
oggetto.chiama();
var derivata=new figlia("Mario");
derivata.chiama();
}
window.addEventListener("load",function(){inizia()});
</script>
E vediamo:
Sì, non ottengo più la seconda MessageBox.
Questo che significa?
Praticamente invece di scrivere public classe o :classe o extends classe come nei vari linguaggi, qui si inserisce il nome della classe genitrice con il call(this.... e i parametri).
Nessun commento:
Posta un commento