Maison >interface Web >js tutoriel >Pourquoi les filtres AngularJS nécessitent-ils deux jeux de parenthèses ?

Pourquoi les filtres AngularJS nécessitent-ils deux jeux de parenthèses ?

DDD
DDDoriginal
2024-11-13 04:29:02930parcourir

Why Do AngularJS Filters Require Two Sets of Parentheses?

Appel de fonctions imbriquées dans les filtres AngularJS

Dans AngularJS, les filtres permettent aux développeurs de transformer et de manipuler des données. Cependant, il y a une particularité lors de l'utilisation de filtres : nous devons les appeler avec deux jeux de parenthèses.

Comprendre la chaîne de fonctions

Lors de l'appel d'un filtre dans AngularJS, vous appellent essentiellement une fonction qui renvoie une autre fonction. Le premier ensemble de parenthèses appelle la fonction externe ($filter), qui renvoie ensuite une fonction interne. Le deuxième ensemble de parenthèses appelle immédiatement la fonction interne.

Par exemple, considérons le code suivant :

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

Ici, $filter est la fonction externe qui renvoie le filtre numérique. Les arguments number et fractionSize sont transmis au filtre numérique. La fonction interne est alors immédiatement appelée avec le résultat de la fonction externe comme argument.

Équivalent JavaScript

En JavaScript, l'équivalent de cette chaîne de fonctions utilise des fonctions :

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

var addTwo = add(2);

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

Dans cet exemple, la fonction externe add renvoie une nouvelle fonction qui prend un argument y et l'ajoute à la valeur x de la fonction externe. La fonction interne peut être affectée à une variable (par exemple, addTwo) ou appelée immédiatement avec un argument (par exemple, add(3)(4)).

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn