JavascriptProva

domenica 22 gennaio 2012

Ecco un setInterval che chiama un metodo di un oggetto! Finalmente il problema sembra risolto!

Ed ecco che ho trovato il modo di far sì che la funzione setInterval faccia riferimento non più all'oggetto window ma all'oggetto oggetto e alla sua istanza. E' banale, ma senza aver chiaro l'ambiente degli scope sembrava insormontabile...

E vediamo se ci riserva altre sorprese...

Intanto ecco qua:
<script>

var oggetto=function(){
 this.funzione=function(){
  var q=this;
  setInterval(function(){document.body.innerHTML+=q},4000);
 }
}
questo=new oggetto();
questo.funzione();
</script>
<body></body>
Ecco l'output:
[object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object][object Object]


Bene, quindi adesso potrei forse far sì che setInterval richiami una funzione dell'oggetto stesso.
Ci provo, e vediamo...

<script>

var oggetto=function(carattere,tempo){
 var carattere=carattere;
 var tempo=tempo;
 var q=this;
 this.funzione=function(){
  
  setInterval(function(){q.chiamata()},tempo);
 }
 this.chiamata=function(){
  window.document.body.innerHTML+=carattere;
 }
}
questo=new oggetto(" fesso ",100);
questo.funzione();
questaltro=new oggetto("<b style='color:red'> SCEMO </b>",500);
questaltro.funzione();
</script>
<body></body>
Funziona! Ho creato due oggetti ognuno dei quali chiama la funzione setInterval con un differente intervallo:
fesso fesso fesso fesso SCEMO fesso fesso fesso fesso fesso SCEMO fesso fesso fesso 


Ecco la pagina realizzata!

Nessun commento:

Posta un commento