首頁 >web前端 >js教程 >如何在 JavaScript 中呼叫一個傳回另一個函數的函數?

如何在 JavaScript 中呼叫一個傳回另一個函數的函數?

WBOY
WBOY轉載
2023-09-02 21:21:021174瀏覽

如何在 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

以上是如何在 JavaScript 中呼叫一個傳回另一個函數的函數?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:tutorialspoint.com。如有侵權,請聯絡admin@php.cn刪除