Zwei Sätze Klammern nach dem Funktionsaufruf

Lesezeit: 2 Minuten

Zwei Satze Klammern nach dem Funktionsaufruf
L105

Ich habe gesucht, wie Filter funktioniert in Angularjs und ich habe gesehen, dass wir 2 Sätze Klammern senden müssen.

$filter('number')(number[, fractionSize])

Was bedeutet das und wie gehen wir mit JavaScript damit um?

  • Persönlich finde ich diese Syntax auch verwirrend / umständlich zu lesen. Sie können jedoch eine einfachere Syntax verwenden, um auf AngularJS-Filter zuzugreifen, wie hier beschrieben: stackoverflow.com/a/14303362/1418796

    – pkozlowski.opensource

    14. August 2013 um 14:41 Uhr

  • Ich habe anglejs als Beispiel genommen. Ich wollte wissen, wie ich damit umgehen soll, wenn ich selbst eine Funktion erstelle.

    – L105

    14. August 2013 um 14:45 Uhr


  • Eigentlich heißt es “curryen”. eine Programmiertechnik.

    – Sajuuk

    26. Juli 2018 um 11:52 Uhr

Das bedeutet, dass die erste Funktion ($filter) gibt eine andere Funktion zurück und diese zurückgegebene Funktion wird dann sofort aufgerufen. Zum Beispiel:

function add(x){
  return function(y){
    return x + y;
  };
}

var addTwo = add(2);

addTwo(4) === 6; // true
add(3)(4) === 7; // true

  • Mit ES6-Pfeilfunktionen könnten Sie es folgendermaßen schreiben: let add = (x) => (y) => x + y;

    – Guido

    19. November 2015 um 8:14 Uhr


  • Nennen Sie mich einen Noob, aber nehmen Sie sich bitte die Zeit zu erklären, wie eine Unterfunktion den Wert von halten kann x

    – Vikas Bansal

    27. März 2016 um 17:38 Uhr

  • @VikasBansal Jedes Mal, wenn eine Funktion in Javascript aufgerufen wird, wird ein neuer Ausführungskontext erstellt, solange darin ein Verweis auf eine andere Funktion vorhanden ist, bleibt dieser Ausführungskontext im Speicher.

    – Paulus

    29. März 2016 um 17:17 Uhr

  • Warum nicht einfach 2 Argumente wie übergeben add(x, y) ? Wo ist der Vorteil, es so zu nennen?

    – Piotr Pawlik

    22. August 2017 um 8:01 Uhr

  • Danke für diese Erklärung! Hat mir wirklich geholfen zu verstehen, wie die Passportjs-Authentifizierung funktioniert: passport.authenticate("local")(req, res, function(){

    – aufgeräumt

    16. November 2017 um 17:34 Uhr


$filter('number') gibt eine Funktion zurück, die zwei Argumente akzeptiert, wobei das erste erforderlich ist (eine Zahl) und das zweite optional ist (die Bruchgröße).

Es ist möglich, die zurückgegebene Funktion sofort aufzurufen:

$filter('number')('123')

Alternativ können Sie die zurückgegebene Funktion für die zukünftige Verwendung aufbewahren:

var numberFilter = $filter('number');

numberFilter('123')

  • Das; sieht komplex aus: export const toursListQuery = gql` query ToursListQuery { tours { id name } } `; export default graphql(toursListQuery, { options: { pollInterval: 10000 }, })(ToursList);

    – Stackdave

    18. Oktober 2017 um 22:41 Uhr

Zwei Satze Klammern nach dem Funktionsaufruf
Bryan Oakley

Es ist dasselbe wie dieses:

var func = $filter('number');
func(number[, fractionSize]);

Die $filter() Funktion gibt einen Zeiger auf eine andere Funktion zurück.

Zwei Satze Klammern nach dem Funktionsaufruf
Ömer Ayhan

mit ES6 oder späteren Versionen können Sie es so machen;

const divideBoth = (x) => (y) => {
   return x / y;
};

Einer der Gründe, warum dieser Funktionstyp nützlich ist, ist, wenn Sie eine React.js-Komponente haben, die eine Callback-Funktion haben muss, anstatt sie auf Inline-Weise zu tun (was ist ()=>Rückgabewert) können Sie es so machen, wie wir es vorher getan haben. Es wird jedoch nicht empfohlen, Callbacks in Ereignissen zu verwenden, da sie beim ersten Rendern ausgeführt werden, was manchmal zu Problemen führen kann

923110cookie-checkZwei Sätze Klammern nach dem Funktionsaufruf

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy