Originariamente inviato da TrueLies
Ora: il metodo tradizionale funziona su qualsiasi browser dell' universo usato da esseri umani.
P.S. Il mio professore di filosofia al liceo non faceva altro che dirci in continuazione di diffidare di chi dice che bisogna fare le cose «perché si è sempre fatto così». Javascript è un linguaggio molto più complesso di quello che appare, il 99% di chi lo usa non ha la più pallida idea di come funzioni l'interprete e, visto il fatto che la neccessità di usarlo è davvero vasta per un linguaggio di programmazione (ormai internet è un mezzo di massa), è molto facile che si diffondano delle abitudini improprie e che queste si affermino in breve tempo come "la norma". Un esempio abominevole è l'uso delle closures per risolvere casi come questo – il famigerato currying, gli venisse un colpo all'idiota che ha proposto una soluzione del genere! – oppure – ma si parla di un male minore – l'uso del doppio uguale, nato per scopi ben precisi e divenuto l'operatore di comparazione di uguaglianza ufficiale "de facto" di javascript. Ma ti potrei fare molti altri esempi di "cattive abitudini". Si tratta in tutti i casi di soluzioni proposte da chi ha poca o nessuna conoscenza di Javascript e presto diffusesi come la norma semplicemente perché troppo faticoso cercare soluzioni alternative o, peggio, perché non ci si rendeva conto dell'impatto negativo nel dispendio di memoria (le closures tenute aperte sono in assoluto la cosa più dispendiosa che esista in javascript – a parità di righe di codice ovviamente).

Ma quello che mi fa rabbia è che tutte le volte che rispondi alle mie argomentazioni te la prendi con chi utilizza codice "nuovo" (ma siamo sicuri?) "senza spirito critico", per poi proporre però le soluzioni "tradizionali acritiche" (tipo la preallocazione degli array), spesso sbagliate e nate da chi non ha piena conoscenza di js, contro la cui ulteriore diffusione chi conosce un po' più a fondo un interprete si dovrebbe battere. Fossi in te ci penserei su almeno un po'…

P.S. SpiderMonkey e Webkit (gli interpreti di ff e chrome e safari) sono open source ed entrambi cercano di rispettare le direttive ecmascript e w3c nei modi più rigorosi. Di SpiderMonkey esiste una copiosissima documentazione (https://developer.mozilla.org/en/SpiderMonkey). Fossi in te, a questo punto, mi darei una bella spulciatina ai sorgenti scritti in C/C++: è il modo migliore per capire davvero a fondo cos'è javascript…
…si sa mai, arrivasse l'illuminazione sulla via di Damasco