Originariamente inviato da in the web
/*global */
GLOB = {};
GLOB.prototype.operation = function (cnt) {
var o = document.getElementById("pippo");
var v = o.innerHTML;
o.innerHTML = v + "Sono stato chiamato per la " + (cnt + 1) +"' volta;
";
}
GLOB.prototype.x__onload = function (cnt) {
this.operation(cnt);
if ( cnt < 10 ) {
cnt++;
setTimeout(function (GLOB) { GLOB.x__onload( cnt ) }, 1000);
}
}
Mi permetto di suggerire questa alternativa, con queste due differenze:
* tendo a considerare le variabili globali dei bug: quando carichi uno script da un altro sito, o incorpori uno script scritto da un altro programmatore, ogni singola variabile globale rischia di essere sovrascritta; inoltre sono più lente, perchè non indicizzabili internamente (GLOB.operation è un indirizzo di memoria, operation e basta è una stringa)
* L'unica variabile globale (oggetto GLOB) viene opportunamente segnalata in modo chiaro per il programmatore e per tool come JSLint
* passare del codice sotto forma di stringa è un'operazione più lenta, ma soprattutto l'interprete non sarà in grado di cercare (e segnalare) errori al suo interno prima del runtime.
Spero di non sembrare saccente: il mio è solo un umile contributo, e quando altri mi fanno appunti di questo genere ne sono felice perchè posso mettere in discussione le mie tecniche.