Übersicht
Underscore.js ist eine sehr schlanke Bibliothek, nur 4 KB komprimiert. Es bietet Dutzende funktionaler Programmiermethoden, was die Javascript-Programmierung erheblich erleichtert. Das MVC-Framework backbone.js basiert auf dieser Bibliothek.
Es definiert ein Unterstrichobjekt (_), und alle Methoden der Funktionsbibliothek gehören zu diesem Objekt. Diese Methoden lassen sich grob in fünf Kategorien einteilen: Sammlung, Array, Funktion, Objekt und Dienstprogramm.
Installieren unter node.js
Underscore.js kann nicht nur in Browserumgebungen, sondern auch in node.js verwendet werden. Der Installationsbefehl lautet wie folgt:
Methoden im Zusammenhang mit Sammlungen
Die Datenerfassung in Javascript-Sprache umfasst zwei Strukturen: Arrays und Objekte. Die folgenden Methoden gelten für beide Strukturen.
Karte
Diese Methode führt nacheinander eine Operation für jedes Mitglied der Sammlung aus und speichert den zurückgegebenen Wert in einem neuen Array.
jeder
Diese Methode ähnelt der Karte, die nacheinander eine Operation für jedes Mitglied der Sammlung ausführt, aber keinen Wert zurückgibt.
reduzieren
Diese Methode führt nacheinander eine Operation für jedes Mitglied der Menge aus und akkumuliert dann die Operationsergebnisse für einen bestimmten Anfangswert. Nachdem alle Operationen abgeschlossen sind, wird der akkumulierte Wert zurückgegeben.
Diese Methode akzeptiert drei Parameter. Der erste Parameter ist die zu verarbeitende Sammlung, der zweite Parameter ist die Funktion, die für jedes Mitglied ausgeführt wird, und der dritte Parameter ist die für die Akkumulation verwendete Variable.
_.reduce([1, 2, 3], function(memo, num){ return memo num; }, 0); // 6
Der zweite Parameter der Reduktionsmethode ist die Operationsfunktion, die selbst zwei Parameter akzeptiert. Der erste ist die für die Akkumulation verwendete Variable und der zweite ist der Wert jedes Mitglieds der Menge.
Filtern und ablehnen
Die Filtermethode führt nacheinander eine Operation für jedes Mitglied der Sammlung aus und gibt nur Mitglieder zurück, deren Operationsergebnis wahr ist.
alles und jedes
Die every-Methode führt nacheinander eine Operation für jedes Mitglied der Sammlung aus. Wenn die Operationsergebnisse aller Mitglieder wahr sind, gibt sie true zurück, andernfalls gibt sie false zurück.
finden
Diese Methode führt nacheinander eine Operation für jedes Mitglied der Sammlung aus und gibt das erste Mitglied zurück, dessen Operationsergebnis wahr ist. Wenn das Operationsergebnis aller Mitglieder falsch ist, wird undefiniert zurückgegeben.
enthält
Wenn sich ein Wert in der Sammlung befindet, gibt diese Methode „true“ zurück, andernfalls gibt sie „false“ zurück.
countBy
Diese Methode führt nacheinander eine Art Operation für jedes Mitglied der Menge aus, zählt Mitglieder mit denselben Operationsergebnissen wie eine Kategorie und gibt schließlich ein Objekt zurück, das die Anzahl der Mitglieder angibt, die jedem Operationsergebnis entsprechen.
Mischen
Diese Methode gibt eine gemischte Sammlung zurück.
Größe
Diese Methode gibt die Anzahl der Mitglieder der Sammlung zurück.
Methoden im Zusammenhang mit Objekten
toArray
Diese Methode wandelt das Objekt in ein Array um.
zupfen
Diese Methode extrahiert den Wert eines bestimmten Attributs mehrerer Objekte in ein Array.
Methoden im Zusammenhang mit Funktionen
binden
Diese Methode bindet den Laufzeitkontext der Funktion und gibt ihn als neue Funktion zurück.
bindAll
Diese Methode bindet alle Methoden eines Objekts (sofern nicht ausdrücklich angegeben) an das Objekt.
teilweise
Diese Methodenbindung bindet eine Funktion an Parameter und gibt sie dann als neue Funktion zurück.
auswendiglernen
Diese Methode speichert die laufenden Ergebnisse einer Funktion für einen bestimmten Parameter zwischen.
Verzögerung
Diese Methode kann die Ausführung der Funktion um eine bestimmte Zeit verschieben.
aufschieben
Diese Methode kann die Ausführung der Funktion verschieben, bis die Anzahl der auszuführenden Aufgaben 0 erreicht, ähnlich dem Effekt, wenn setTimeout die Ausführung um 0 Sekunden verzögert.
Gashebel
Diese Methode gibt eine neue Version der Funktion zurück. Wenn Sie diese neue Version der Funktion kontinuierlich aufrufen, müssen Sie eine bestimmte Zeit warten, bevor Sie die nächste Ausführung auslösen.
Entprellen
Diese Methode gibt auch eine neue Version einer Funktion zurück. Bei jedem Aufruf dieser neuen Version der Funktion muss zwischen dem vorherigen Aufruf eine bestimmte Zeitspanne liegen, andernfalls ist sie ungültig. Seine typische Anwendung besteht darin, zu verhindern, dass Benutzer auf eine Schaltfläche doppelklicken und so das Formular zweimal absenden.
einmal
Diese Methode gibt eine neue Version der Funktion zurück, sodass diese Funktion nur einmal ausgeführt werden kann. Wird hauptsächlich zur Objektinitialisierung verwendet.
nachher
Diese Methode gibt eine neue Version der Funktion zurück. Diese Funktion wird erst nach einer bestimmten Anzahl von Aufrufen ausgeführt. Sie wird hauptsächlich verwendet, um zu bestätigen, dass eine Reihe von Vorgängen abgeschlossen sind.
wickeln
Diese Methode verwendet eine Funktion als Parameter, übergibt sie an eine andere Funktion und gibt schließlich eine neue Version der ersteren zurück.
Komponieren
Diese Methode akzeptiert eine Reihe von Funktionen als Parameter und führt sie der Reihe nach von hinten nach vorne aus. Das laufende Ergebnis der vorherigen Funktion wird als laufender Parameter der nächsten Funktion verwendet. Mit anderen Worten, konvertieren Sie die Form von f(g(),h()) in f(g(h())).
Werkzeugmethoden
Vorlage
Diese Methode wird zum Kompilieren von HTML-Vorlagen verwendet. Es akzeptiert drei Parameter.
templateString: Vorlagenzeichenfolge
Daten: Eingabevorlagendaten
Einstellungen: Einstellungen
templateString
Der Vorlagenstring templateString ist eine gewöhnliche HTML-Sprache, in der Variablen in der Form <%= ... %> eingefügt werden. Das Datenobjekt ist für die Bereitstellung des Werts der Variablen verantwortlich.
<%= Wort %>
JavaScript-Befehle können in der Form <% … %> eingefügt werden. Das Folgende ist ein Beispiel für eine Urteilsaussage.
Daten
Alle Variablen in templateString sind interne Attribute des obj-Objekts, und das obj-Objekt verweist auf das zweite Parameterdatenobjekt. Die folgenden beiden Aussagen sind äquivalent.