ciao
ho un pezzo di codice da revisionare. Ecco i 2 snippet (il secondo e' la versione che io ho proposto come revisione della prima):
codice:
<script type="text/javascript">
var O1 = (function(){
var self;
return {
ua: navigator.userAgent,
ff: false,
ff3: false,
ff3up: false,
init: function () {
self = O1;
if (self.ua.indexOf("Firefox") > -1) {
self.ff = true;
var re = /Firefox\/([^.]*)\./;
var matches = re.exec(self.ua);
if (matches.length == 2) {
var version = +matches[1];
self.ff3 = (version == 3);
self.ff3up = (version >= 3);
}
}
}
}
})()
O1.init();
document.write("firefox = " + O1.ff + "
")
document.write("firefox3 = " + O1.ff3 + "
")
document.write("firefox3up = " + O1.ff3up + "
")
</script>
<hr />
<script type="text/javascript">
var O2 = {
ua: navigator.userAgent,
ff: false,
ff3: false,
ff3up: false,
init: function () {
if (this.ua.indexOf("Firefox") > -1) {
this.ff = true;
var re = /Firefox\/([^.]*)\./;
var matches = re.exec(this.ua);
if (matches.length == 2) {
var version = +matches[1];
this.ff3 = (version == 3);
this.ff3up = (version >= 3);
}
}
}
}
O2.init();
document.write("firefox = " + O2.ff + "
")
document.write("firefox3 = " + O2.ff3 + "
")
document.write("firefox3up = " + O2.ff3up + "
")
</script>
il mio collega non si ricorda perche ha concepito il metodo in quel modo (usando la variabile private self creata con un module pattern) pero' dice che si ricorda che una buona ragione cera ;-)
secondo me e' inutile e basta.
che voi sappiate ci sono browser che hanno problemi a interpretare la seconda versione che io ho proposto? a me sembra + semplice e non fa nemmeno uso della chiusura.
grazie