日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

如何理解JavaScript多个连续箭头函数书写方式

發布時間:2025/4/16 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何理解JavaScript多个连续箭头函数书写方式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

導言: 本菜雞在學習Vue編程的時候,看到有大佬寫的代碼用了多個連續箭頭函數,完全不能理解是什么意思。經過多方調查和思考才初步理解。本篇文章記錄一下自己學習和理解的心得。


有多個箭頭函數的代碼如何執行

我拿一個很普通的函數來舉例子,比如下面代碼:

function sum (a, b) {return a + b; }

或者是這樣:

let sum = function (a, b) { a + b }

如果要寫成箭頭函數可以寫成這樣:

let sum = (a, b) => a + b

因為只有一行代碼,所以對于箭頭函數,我們可以省略大括號和return,但是箭頭函數只能寫成對象字面量的形式。

如果寫成多個箭頭函數,是這個樣子的:

let sum = a => b => a + b alert(sum(1)(2))

實現的是和sum函數一樣的功能。我們使用Typescript練習模式可以看到上述代碼轉換成的ES5代碼:

var sum = function (a) { return function (b) { return a + b; }; }; alert(sum(1)(2));

我們看這個代碼可以理解了多個箭頭函數的具體執行了,有一個匿名函數其參數為a,該匿名函數里面又有一個匿名函數其參數為b。經過兩層嵌套調用和返回之后,返回最終的sum結果。但我們看到sum代碼,明明寫成一個箭頭函數就可以解決問題,為什么要寫成多個箭頭函數的形式?不好理解,是否多此一舉?


為什么要寫成多個箭頭函數的形式

如果你了解柯里化的知識的話,就會發現,多個箭頭函數就是一種柯里化的表現形式。

柯里化(Currying)是一種關于函數的高階技術。它不僅被用于 JavaScript,還被用于其他編程語言。
柯里化是一種函數的轉換,它是指將一個函數從可調用的 f(a, b, c) 轉換為可調用的 f(a)(b)(c)

那柯里化有什么意義呢?和偏函數有關。簡單來說,可以讓你可以提前傳遞部分參數,實現函數再調用函數。更具體講解可以看參考3的內容。


參考資料

[1] ES6多重箭頭函數
[2] MDN箭頭函數
[3] 柯里化(Currying)

總結

以上是生活随笔為你收集整理的如何理解JavaScript多个连续箭头函数书写方式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。