函数调用后的两组括号

时间:2013-08-14 14:28:35

标签: javascript angularjs

我在查看filters在Angularjs中是如何工作的,我看到我们需要发送2组括号。

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

这意味着什么?我们如何使用JavaScript处理它?

3 个答案:

答案 0 :(得分:283)

这意味着第一个函数($filter)返回另一个函数,然后立即调用返回的函数。例如:

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

var addTwo = add(2);

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

答案 1 :(得分:18)

$filter('number')返回一个接受两个参数的函数,第一个是必需的(一个数字),第二个是可选的(分数大小)。

可以立即调用返回的函数:

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

或者,您可以保留返回的功能以供将来使用:

var numberFilter = $filter('number');

numberFilter('123')

答案 2 :(得分:5)

与此相同:

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

$filter()函数返回指向另一个函数的指针。