Według 6. edycja javascript: The Definitive Guide (Flanagan, 2011):Kiedy wszystkie przeglądarki zaczęły obsługiwać String.replace (regexp, replacement_function)?
ECMAScript v3 określa, że wymiana argument
replace()
może być funkcją zamiast łańcucha.
Czekam na jakiegoś kodu napisanego w 2005 roku, gdzie complicated workaround została wykorzystana w celu zastąpienia części łańcucha. Komentarze do kodu wyraźnie wskazują, że pierwotnie używał on funkcjonalnej metody replace()
, ale że obejście było konieczne dla kompatybilności z różnymi przeglądarkami.
ECMAScript v3 ukazał się w 1999 roku i, o ile mogę powiedzieć (od this discussion post i this blog post), ECMAScript V3 był wspierany w poprzek głównych przeglądarek od końca roku 2001. Czyżby autor zostały źle, albo ktoś może rzucić światło na dlaczego takie obejście mogło być konieczne w 2005 roku?
...
UPDATE Rzeczywisty komentarz przez autora kodu mówi:
funkcje lambda w wyrażeniach regularnych są obecnie problem ze zbyt wielu przeglądarek.
zmieniono kod w celu obejścia.
Kod autora działa lub uruchamia this business, chociaż sam kod może być osobistym projektem.
A może wielu użytkowników wciąż używało starych przeglądarek? – JJJ
Jest to możliwe. Właśnie to mam nadzieję rzucić światło. – guypursey
Myślę, że Juhana ma prawdopodobnie rację - wszystko zależy od tego, do czego użyto kodu. Może wystarczyło jej docelowej publiczności były uruchomione przestarzałe przeglądarki; być może tylko jedna osoba o przestarzałej konfiguracji skarżyła się wystarczająco głośno. Być może był on skierowany do niektórych przeglądarek nie pracujących na komputerze, które były za "głównymi" przeglądarkami. Trudno powiedzieć bez znajomości kontekstu. – Flambino