Secondo la 6 ° edizione di JavaScript: The Definitive Guide (Flanagan, 2011):Quando tutti i browser hanno iniziato a supportare String.replace (regexp, replacement_function)?
ECMAScript v3 specifica che la sostituzione argomento
replace()
può essere una funzione invece di una stringa.
Sto guardando un codice scritto nel 2005, in cui è stato utilizzato uno complicated workaround per sostituire parti di una stringa. I commenti per il codice indicano chiaramente che inizialmente utilizzava il metodo funzionale replace()
ma che la soluzione alternativa era necessaria per la compatibilità tra browser.
ECMAScript v3 è uscito nel 1999 e, per quanto posso dire (da this discussion post e this blog post), ECMAScript v3 è stata sostenuta attraverso i principali browser dalla fine del 2001. Potrebbe l'autore hanno sbagliato, o qualcuno può far luce su perché una tale soluzione avrebbe potuto essere necessaria nel 2005?
...
UPDATE Il commento effettivo l'autore del codice dice:
funzioni lambda in espressioni regolari sono attualmente un problema con troppi browser.
codice modificato per aggirare.
Il codice dell'autore funziona per o viene eseguito this business, sebbene il codice stesso possa essere un progetto personale.
Oppure potrebbe essere che molti utenti stiano ancora utilizzando i vecchi browser? – JJJ
È possibile. Questo è quello che spero di far luce. – guypursey
Penso che probabilmente Juhana abbia ragione - tutto dipende da cosa è stato usato il codice in questione. Forse abbastanza del suo pubblico previsto era in esecuzione browser obsoleti; forse solo una persona con una configurazione obsoleta si è lamentata abbastanza forte. Forse stava prendendo di mira alcuni browser non di classe desktop che si trovavano dietro i browser "principali". Un po 'difficile da dire senza conoscere il contesto – Flambino