Underscore.js verwenden, kann ich folgendes schreiben, die 42
zurückgibt:Underscore.js: wie Kette benutzerdefinierte Funktionen
_([42, 43]).chain()
.first()
.value()
I benutzerdefinierte Funktion haben, die nicht Teil von Underscore.js double()
genannt:
function double(value) { return value * 2; };
Ich möchte diese Funktion in einer Underscore-Kette aufrufen können, als wäre es Teil von Underscore. Ich möchte folgende schreiben, die ich mag würde 84
zurückzukehren:
_([42, 43]).chain()
.first()
.double()
.value()
Dies kann nicht funktionieren, da Unders nicht double()
definieren. Ich konnte tap()
wie in verwenden:
_([42, 43]).chain()
.first()
.tap(double)
.value()
Dies ist gültig, aber tap
wendet die Funktion auf ihr Argument und gibt das Argument, nicht das Ergebnis der Funktion. So sieht es für mich aus, als würde ich eine Art von tap
benötigen, die das Ergebnis der auf ihr Argument angewandten Funktion zurückgibt. Gibt es so etwas in Underscore.js? Fehle ich etwas sehr offensichtlich?
Seien Sie sich bewusst, dass "double" ein [* zukünftiges reserviertes Wort *] (http://bclary.com/2004/11/07/#a-7.5.3) ist und Implementierungen einen 'SyntaxError' auslösen können, wenn es als Identifikator – CMS
Alessandro, hast du schon herausgefunden, dass ich dir die einzig richtige Antwort auf diese Frage gegeben habe? Was ich ausgebe, verschmutzt den Unterstrich-Namensraum überhaupt nicht. Die Bibliothek "underscore.js" hat genau das vorausgesagt, wonach Sie gefragt haben, und genau dafür eine Funktion eingebaut. –
Underscore hat jetzt sowohl 'tap' (führt eine Funktion zum Ändern jedes Elements aus) als auch' map' (führt eine Funktion aus, die ein neues Element zurückgibt). – CMircea