Giới thiệu
Bạn đã từng nghe qua khái niệm callback nhưng nghĩ rằng nó khá phức tạp và khó hiểu trong lập trình? Bài viết này sẽ giúp bạn hiểu rõ hơn về callback và áp dụng nó trong ngôn ngữ lập trình JavaScript.
Callback là gì?
Một cách dễ hiểu, callback là việc truyền một đoạn mã (hàm A) vào một đoạn mã khác (hàm B). Tại một thời điểm nào đó, hàm B sẽ gọi lại hàm A.
Ví dụ về callback và ứng dụng trong jQuery
Hãy tưởng tượng bạn phải đi công tác và dặn vợ mình rằng nếu có ai giao quà cho bạn, hãy đem quà đó tặng cho em gái hàng xóm dễ thương. Hàm A trong trường hợp này là việc tặng quà cho em hàng xóm:
function tangQua(qua) { return console.log("Đã tặng " + qua); } function oNha(vo, tangQua) { var qua = "Quà đã nhận"; tangQua(qua); }
Trong ví dụ trên, chúng ta truyền hàm A vào như một đối số cho hàm B. Tại một thời điểm nào đó, hàm B sẽ gọi lại hàm A, giống như vợ bạn mang quà đến cho em hàng xóm.
Trong jQuery, bạn có thể sử dụng rất nhiều callback mà không hiểu rõ bản chất của việc đó. Hãy xem ví dụ dưới đây, khi bạn click vào một nút, chúng ta hiển thị một popup.
function showPopup() { // Hiển thị popup } $('#btn').click(showPopup);
Ở đây, showPopup
là hàm A và $('#btn').click()
là hàm B. Hàm B sẽ gọi hàm A khi bạn click vào nút. Đây là một cách sử dụng callback phổ biến, nhưng không phải ai cũng hiểu rõ về nó.
Ứng dụng của callback
Callback có nhiều ứng dụng trong lập trình, ví dụ:
- Gọi một hàm khi một sự kiện xảy ra, ví dụ như khi click vào một nút, đóng cửa sổ, v.v.
- LINQ trong C# cũng được xây dựng dựa trên khái niệm callback và biểu thức lambda. Với callback, chúng ta có thể thực hiện các thao tác như tìm phần tử trong mảng, lọc phần tử trong mảng, sắp xếp mảng, v.v. trở nên đơn giản và tiện lợi.
Nhớ kĩ những ứng dụng này, bởi chúng có thể giúp bạn trở thành một lập trình viên giỏi hơn. Vậy bạn đã sẵn sàng để khám phá thêm về callback chưa?