在 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中文網其他相關文章!