我們將透過引用函數名稱並在其後添加括號來呼叫函數。如果 我們呼叫的函數會傳回另一個函數(在我們的例子中確實如此),我們需要分配 它到一個變數或立即調用它。未來,我們需要確保我們 了解返回函數的行為以及如何在我們的程式碼中使用它。 這就是所謂的函數柯里化。
函數柯里化是函數式程式設計中的一種技術,其中一個函數被轉換為一系列函數,每個函數接受一個參數。
這允許部分應用函數的參數,並且可以簡化函數組合。
它以邏輯學家 Haskell Curry 的名字命名。
在 JavaScript 中,「curry」函數可用於柯里化給定函數。
在 JavaScript 中,您可以呼叫一個傳回另一個函數的函數,方法是先將傳回的函數指派給一個變數,然後使用變數名稱加括號來呼叫它。
let outerFunction = function() { return function() { console.log("Inner function"); } } let innerFunction = outerFunction(); innerFunction(); // "Inner function"
Inner function
您也可以在呼叫外部函數後立即呼叫內部函數,方法是在外部函數呼叫中新增括號,如下所示 -
outerFunction()(); // "Inner function"
也可以使用箭頭函數來取代函數 -
let outerFunction = () => () => console.log("Inner function"); let innerFunction = outerFunction(); innerFunction(); // "Inner function"
Inner function
或
outerFunction()(); // "Inner function"
兩者都會給出相同的結果
這是一個在 JavaScript 中呼叫傳回另一個函數的函數的範例 -
// A function that returns another function function createMultiplier(x) { return function(y) { return x * y; }; } // Call the createMultiplier function and assign the returned function to a variable let double = createMultiplier(2); // Use the returned function to perform a calculation console.log(double(5)); // Output: 10
createMultiplier 函數接受單一參數 x,並傳回一個新函數。此返回函數接受單一參數 y,並傳回 x 和 y 的乘積。
我們呼叫 createMultiplier 函數並傳入值 2 作為參數,該函數將傳回的函數指派給變數 double。
現在 double 變數是接受參數 y 並傳回 x*y(其中 x 為 2)的函數。
我們呼叫 double(5),它將回傳 2*5 = 10。
在此範例中,createMultiplier 是一個高階函數,因為它會傳回一個函數。傳回的函數稱為閉包,因為它記住了外部函數作用域中的 x 值。
10
以上是如何在 JavaScript 中呼叫一個傳回另一個函數的函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!