7
votes

Comment utiliser la fonction (1) (2) en JavaScript? Et comment ça marche?

Je crois comprendre la fonction d'appel (1) mais pas fonction (1) (2), comment ça marche?

également possible pour la fonction (1) (2) (3) (4) aussi?


0 commentaires

4 Réponses :


12
votes

Dans ce cas, vous supposez que la fonction (1) renvoie une fonction, que vous appelez cette nouvelle fonction anonyme avec un argument de 2.

Voir cet exemple: P>

var a = "Hello, world";

function multiply(a) {
    return function(b) {
        return a * b;
    }
}

window.alert(multiply(6)(7)); // shows 42

var twoTimes = multiply(2);
window.alert(typeof(twoTimes));
window.alert(twoTimes(5));


0 commentaires

1
votes

Si votre fonction renvoie une fonction, vous pouvez également appeler cela aussi.

f2 = f(1)
x = f2(2)


0 commentaires

1
votes

La parenthèse indique une invocation d'une fonction (appelez-le "). Si vous avez

function add(n1) {
    return function add_second(n2) { 
        return n1+n2
    }
}


2 commentaires

Pas besoin de donner un nom à la fonction retournée, BTW. Fonction de retour (N2) serait aussi bon, et moins de taper aussi.


Je sais. Je sentais peut-être qu'il serait préférable de ne pas bouleverser la question à la main en utilisant également des fonctions anonymes.



4
votes

Vous avez une fonction qui renvoie une fonction: xxx pré>

lorsque vous appelez f (1), vous obtenez une référence à une fonction de retour. Vous pouvez stocker la référence dans une variable et l'appeler: p> xxx pré>

ou vous pouvez l'appeler directement: p>

function f(n) {
  return function(x) {
    return function(y) {
      return function(z) {
        return n + x + y + z;
      }
    }
  };
}


1 commentaires

Curieux de savoir le bowtvote? Si vous n'expliquez pas ce que vous n'aimez pas, c'est plutôt inutile ...