190

我正在查看过滤器在 Angularjs 中的工作方式,我发现我们需要发送 2 组括号。

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

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

4

4 回答 4

371

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

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

var addTwo = add(2);

addTwo(4) === 6; // true
add(3)(4) === 7; // true
于 2013-08-14T14:31:29.057 回答
26

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

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

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

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

var numberFilter = $filter('number');

numberFilter('123')
于 2013-08-14T14:35:46.617 回答
7

与此相同:

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

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

于 2013-08-14T14:34:32.620 回答
0

使用 ES6 或更高版本,您可以这样做;

const divideBoth = (x) => (y) => {
   return x / y;
};

使此函数类型有用的原因之一是当您有一个需要回调函数的 react.js 组件而不是内联方式(即()=>return value)时,您可以按照我们之前的方式进行操作。但不建议在事件回调中使用,因为它会在第一次渲染时执行,有时可能会导致问题

于 2021-11-27T12:54:09.447 回答