Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> JavaScript

คูณสองตัวเลขด้วย Higher-Order Function (HOC) - JavaScript

Higher-Order Function (HOC) คือฟังก์ชันที่รับฟังก์ชันเป็นอาร์กิวเมนต์ หรือคืนค่าเป็นฟังก์ชัน (Currying)

ตัวอย่างโค้ด (Currying)

const productHOC = num1 => {
  return num2 => num1 * num2;
};

console.log(productHOC(24)(5));

ผลลัพธ์

120

การประยุกต์ใช้ Currying

// สร้างฟังก์ชันเฉพาะเจาะจง
const multiplyBy10 = productHOC(10);
const multiplyBy100 = productHOC(100);

console.log(multiplyBy10(5));   // 50
console.log(multiplyBy100(5));  // 500

// ใช้กับ Array.map
const numbers = [1, 2, 3, 4, 5];
const doubled = numbers.map(productHOC(2));
console.log(doubled); // [2, 4, 6, 8, 10]

ประโยชน์ของ HOC/Currying

  • Partial Application: กำหนดค่าบางอาร์กิวเมนต์ล่วงหน้า
  • Function Composition: รวมฟังก์ชันเล็กๆ เป็นใหญ่
  • Reusability: สร้างฟังก์ชันเฉพาะทางจากฟังก์ชันทั่วไป
  • Point-free Style: เขียนโค้ดไม่ต้องระบุอาร์กิวเมนต์ชัดเจน