如何在 JavaScript 中呼叫返回另一個函式的函式?
我們將透過引用函式名稱並在其後新增括號來呼叫函式。如果我們呼叫的函式返回另一個函式(在本例中確實如此),我們需要將其賦值給一個變數或立即呼叫它。將來,我們需要確保我們理解返回函式的行為以及如何在程式碼中使用它。這稱為函式柯里化。
函式柯里化
這允許對函式的引數進行部分應用,並且可以簡化函式組合。
它以邏輯學家 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
廣告
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 語言程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP