Currying trong JavaScript ES6

Currying là một kỹ thuật lập trình trong JavaScript (và nhiều ngôn ngữ khác) cho phép bạn biến đổi một hàm có nhiều đối số thành một chuỗi các hàm con (nested functions), mỗi hàm con nhận một đối số duy nhất. Currying giúp bạn tạo ra các hàm một cách linh hoạt và tiện lợi, cho phép bạn xử lý các đối số một cách dễ dàng và tái sử dụng code.

Dưới đây là một ví dụ về cách triển khai currying trong JavaScript ES6:

// Hàm gốc không được currying
function add(a, b) {
  return a + b;
}

// Currying hàm add
function curriedAdd(a) {
  return function(b) {
    return a + b;
  };
}

// Sử dụng hàm curriedAdd
const add5 = curriedAdd(5); // Tạo một hàm mới nhận đối số đầu tiên là 5

console.log(add5(10)); // Kết quả: 15
console.log(add5(20)); // Kết quả: 25

Trong ví dụ này:

  • Hàm add là hàm gốc không được currying và nhận hai đối số.
  • Hàm curriedAdd là hàm currying cho hàm add. Nó trả về một hàm mới mà sau này có thể gọi với một đối số duy nhất.
  • Bằng cách gọi curriedAdd(5), chúng ta tạo ra một hàm mới add5 nhận một đối số duy nhất và cố định giá trị đầu tiên là 5. Do đó, add5(10) tương đương với add(5, 10) và trả về 15.

Currying có thể giúp bạn tạo ra các hàm linh hoạt và mạnh mẽ, đặc biệt là trong các tình huống mà bạn cần sử dụng nhiều đối số và muốn tạo ra các biến thể của hàm dễ dàng để sử dụng.

- Featured image -

No comments

Leave a comment!

Your email address will not be published. Required fields are marked *