Ich habe anscheinend widersprüchliche Ratschläge in den Büchern, die ich über diese Funktionalität gelesen habe. Ich frage mich, ob jemand klären könnte. Zum Beispiel Nicholas Zakas die Funktion Argument besagt, hat eine Signatur des Formats Funktion (Spiel, pos, Originaltext) (P139: Pro JavaScript für Web-Entwickler 2nd ed: Wrox)JavaScript String Ersetzen mit regulärem Ausdruck und Funktion als Argumente
Er auf, wenn Sie den regulären Ausdruck zu sagen, geht Hat eine Übereinstimmung, wird die Funktion drei Argumente übergeben (wie oben). Wenn mehrere Capture-Gruppen vorhanden sind, wird jede übereinstimmende Zeichenfolge als Argument übergeben, wobei die letzten beiden Positionen die Position und OriginalText sind.
Dann kommen wir zu Doug Crockfords, JavaScript: The Good Parts. (P90): Er schreibt die Syntax erneut als string (searchValue, replaceValue) searchValue kann eine Regex sein - eine große Übereinstimmung .. Wenn replaceValue eine Funktion ist, ist der erste Parameter der übereinstimmende Text, dann ist zweite Capture-Gruppe 1 , die dritte ist Capture-Gruppe 2 und so weiter .. Es gibt einen spürbaren Unterschied hier. (also kein Positionsargument)
Ich habe mir auch ein Beispiel in Pro JavaScript Design Patterns (APress P152) angeschaut, das den gesamten Cross-Referencing-Prozess ausschaltete. Diese Typen (Ross Harmes/Dustin Diaz) geben die Funktion replaceValue mit zwei Argumenten, die & b heißen, nicht hilfreich an. Aber es neigt dazu, die von Doug Crockford beschriebene Vorstellung zu verstärken.
Kann jemand bestätigen, ob die Beschreibung von Nicholas Zakas tatsächlich eine gültige Option ist?
Danke für Links und. Die Moziliola im Besonderen war großartig. – JGFMK