แกงกะหรี่
แกง เป็นเทคนิคการประเมินฟังก์ชันที่มีอาร์กิวเมนต์หลายตัวเป็นลำดับของฟังก์ชันที่มีอาร์กิวเมนต์เดียว กล่าวคือ เมื่อฟังก์ชันแทนที่จะรับอาร์กิวเมนต์ทั้งหมดในคราวเดียว ให้รับฟังก์ชันแรกและคืนค่าฟังก์ชันใหม่ที่ใช้ฟังก์ชันที่สองและ ส่งกลับฟังก์ชันใหม่ซึ่งรับฟังก์ชันที่สาม และอื่นๆ จนกว่าอาร์กิวเมนต์ทั้งหมดจะบรรลุผล
การใช้งานฟังก์ชั่นการแกง
ก) ช่วยหลีกเลี่ยงการส่งผ่านตัวแปรเดิมซ้ำแล้วซ้ำอีก
b) มีประโยชน์อย่างมากในการจัดการเหตุการณ์
ไวยากรณ์:
function Myfunction(a) { return (b) => { return (c) => { return a * b * c } } }
ตัวอย่าง
ในตัวอย่างต่อไปนี้ เนื่องจากไม่มี currying ใช้พารามิเตอร์ทั้งหมดถูกส่งพร้อมกัน (volume(11,2,3)) ไปยังฟังก์ชันที่มีอยู่เพื่อคำนวณปริมาตร
<html> <body> <script> function volume(length, width, height) { return length * width * height; } document.write((volume(11,2,3))); </script> </body> </html>
ผลลัพธ์
66
ตัวอย่าง
ในตัวอย่างต่อไปนี้ ตั้งแต่ แกง ใช้พารามิเตอร์ถูกส่งทีละตัว (volume(11)(2)(3)) จนกระทั่งฟังก์ชันสุดท้ายเรียกว่าพารามิเตอร์สุดท้าย
<html> <body> <script> function volume(length) { return function(width) { return function(height) { return height * width * length; } } } document.write(volume(11)(2)(3)) </script> </body> </html>
ผลลัพธ์
66