planets-top
Published on

Higher-Order Function trong Javascript là gì?

Authors

Usage

Higher-Order Function (Hàm bậc cao) là hàm có một trong hai (hoặc cả hai) đặc điểm sau:

  • Nhận hàm khác làm đối số: Higher-Order Function có thể nhận hàm khác làm tham số đầu vào.
  • Trả về một hàm khác: Higher-Order Function có thể trả về một hàm làm kết quả.

Những hàm bậc cao giúp chúng ta dễ dàng xử lý các hành vi, các đoạn mã lặp lại hoặc điều kiện phức tạp, vì chúng cho phép truyền logic thông qua hàm và trả về những hàm có hành vi mới tùy thuộc vào ngữ cảnh. Đây là một trong những điểm nổi bật của JavaScript trong lập trình hàm (functional programming).

// Ví dụ 1: Hàm nhận một hàm khác làm đối số
function applyOperation(a, b, operation) {
  return operation(a, b)
}

function add(x, y) {
  return x + y
}

console.log(applyOperation(5, 10, add)) // Kết quả: 15

// Ví dụ 2: Hàm trả về một hàm khác
function multiplier(factor) {
  return function (number) {
    return number * factor
  }
}

const double = multiplier(2)
console.log(double(5)) // Kết quả: 10

Trong ví dụ trên:

  • applyOperation là một Higher-Order Function vì nó nhận operation là một hàm làm tham số.
  • multiplier cũng là Higher-Order Function vì nó trả về một hàm khác.