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àmadd
. 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ớiadd5
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ớiadd(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 -