<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