Два набора круглых скобок после вызова функции

Я смотрел, как фильтры работает в Angularjs, и я увидел, что нам нужно отправить 2 набора круглых скобок.

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

Что это значит и как мы обрабатываем его с помощью JavaScript?

Ответ 1

Это означает, что первая функция ($filter) возвращает другую функцию, а затем возвращенная функция вызывается немедленно. Например:

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

var addTwo = add(2);

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

Ответ 2

$filter('number') возвращает функцию, которая принимает два аргумента, первая требуется (число), а вторая необязательна (размер фракции).

Можно сразу вызвать возвращенную функцию:

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

В качестве альтернативы вы можете сохранить возвращаемую функцию для использования в будущем:

var numberFilter = $filter('number');

numberFilter('123')

Ответ 3

Это то же самое, что и:

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

Функция $filter() возвращает указатель на другую функцию.