在 AngularJS 过滤器中调用嵌套函数
在 AngularJS 中,过滤器允许开发人员转换和操作数据。然而,使用过滤器时有一个特殊之处:我们需要用两组括号来调用它们。
理解函数链
在 AngularJS 中调用过滤器时,你本质上是调用一个返回另一个函数的函数。第一组括号调用外部函数 ($filter),然后返回内部函数。第二组括号立即调用内部函数。
例如,考虑以下代码:
$filter('number')(number[, fractionSize])
这里, $filter 是返回数字过滤器的外部函数。 number 和fractionSize 参数被传递到数字过滤器。然后立即调用内部函数,并以外部函数的结果作为参数。
JavaScript 等效项
在 JavaScript 中,此函数链的等效项是使用嵌套函数:
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
在此示例中,外部函数 add 返回一个新函数,该函数接受参数 y 并将其与值 x 相加外部函数。内部函数可以分配给变量(例如 addTwo)或使用参数立即调用(例如 add(3)(4))。
以上是为什么 AngularJS 过滤器需要两组括号?的详细内容。更多信息请关注PHP中文网其他相关文章!