函数调用后的两组括号

我正在研究Angularjs中的filter是如何工作的,而且我看到我们需要发送2组括号。

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

这是什么意思,我们如何处理它的JavaScript?

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

 function add(x){ return function(y){ return x + y; }; } var addTwo = add(2); addTwo(4) === 6; // true add(3)(4) === 7; // true 

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

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

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

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

 var numberFilter = $filter('number'); numberFilter('123') 

这是一样的:

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

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