理解JavaScript 中的多個箭頭函數
在JavaScript 中,你可能會遇到這樣的程式碼:
e.preventDefault(); /// Do something here }
柯里化函數
這段程式碼示範了柯里化函數。柯里化函數是一個傳回函數的函數,可讓您部分套用參數。
const add = (x, y) => x + y add(2, 3) //=> 5
const add = x => y => x + y
const add = function (x) { return function (y) { return x + y } }
聚焦回傳值
const f = someParam => returnValue
const add = x => (y => x + y)
add(2) // returns (y => 2 + y)
呼叫柯里化函數
add(2)(3) // returns 5
這是因為第一個函數呼叫傳回第二個函數。只有第二個函數呼叫才能給出實際結果。
在您的程式碼中的應用程式handleChange = field => e => { e.preventDefault() /// Do something here }
handleChange = function(field) { return function(e) { e.preventDefault() // Do something here // return ... }; };
handleChange = function(field) { return function(e) { e.preventDefault() // Do something here // return ... }.bind(this) }.bind(this)
這意味著handleChange為指定欄位建立一個函數。這是一種為每個輸入設定事件監聽器而無需重複的 React 技術。
更多箭頭const three = a => b => c => a + b + c const four = a => b => c => d => a + b + c + d three (1) (2) (3) // 6 four (1) (2) (3) (4) // 10
柯里化和Arity
const $ = x => k => $ (k (x)) const add = x => y => x + y const mult = x => y => x * y $ (1) // 1 (add (2)) // + 2 = 3 (mult (6)) // * 6 = 18 (console.log) // 18 $ (7) // 7 (add (1)) // + 1 = 8 (mult (8)) // * 8 = 64 (mult (2)) // * 2 = 128 (mult (2)) // * 2 = 256 (console.log) // 256
以上是JavaScript 中的多個巢狀箭頭函數如何運作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!