แกง − ในการแกงฟังก์ชันใช้ฟังก์ชันอื่นและอาร์กิวเมนต์บางอย่าง ฟังก์ชันจะส่งคืนฟังก์ชันหนึ่งฟังก์ชันที่มีพารามิเตอร์เดียวเท่านั้น มันส่งกลับฟังก์ชันที่มีอาร์กิวเมนต์เดียวซึ่งสามารถเชื่อมโยงเข้าด้วยกันได้
การสมัครบางส่วน − ในการใช้งานบางส่วน อาร์กิวเมนต์บางตัวสามารถผูกกับค่าบางค่าเพื่อสร้างฟังก์ชันที่มีอาร์กิวเมนต์น้อยกว่า
ต่อไปนี้เป็นรหัสสำหรับโปรแกรม currying เทียบกับบางส่วนใน JavaScript -
ตัวอย่าง
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style> body { font-family: "Segoe UI", Tahoma, Geneva, Verdana, sans-serif; } .result { font-size: 18px; font-weight: 500; color: rebeccapurple; } </style> </head> <body> <h1>Currying vs Partial application in JavaScript</h1> <div class="result"></div> <br /> <button class="Btn">CLICK HERE</button> <h3>Click on the above button to see currying and partial application example</h3> <script> let resEle = document.querySelector(".result"); let BtnEle = document.querySelector(".Btn"); function multiply(x, y) { return function (y) { return x * y; }; } function add(a, b, c, d) { return a + b + c + d; } BtnEle.addEventListener("click", () => { resEle.innerHTML = "Currying<br>multiply(2)(5) = " + multiply(2)(5) + "<br>"; let partialAdd = add.bind(this, 2, 3); resEle.innerHTML += "Partial Application <br> partialAdd(4,5) = " + partialAdd(4, 5) + "<br>"; }); </script> </body> </html>
ผลลัพธ์
เมื่อคลิกปุ่ม 'คลิกที่นี่' -