Trong JavaScript, lập trình viên có thể định nghĩa các đơn vị mã bao gồm các biến và hàm. Các hàm JavaScript cũng có thể nhận các tham số, với mã gọi một hàm truyền các tham số này dưới dạng biến hoặc giá trị. Cũng có thể chuyển một tham chiếu đến một hàm khác như một tham số. Một hàm gọi lại thường là một hàm được gọi khi một hàm khác kết thúc thực thi. Vì lý do này, các hàm gọi lại thường xuất hiện dưới dạng tham số cho các hàm khác.
Định nghĩa gọi lại
Để triển khai một hàm gọi lại, mã JavaScript trong một trang trước tiên phải xác định hàm. Đoạn mã mẫu sau định nghĩa một hàm và lưu trữ một tham chiếu biến đến nó: var callbackDefinition = function (numParam) {alert (numParam); };
Hàm sử dụng một tham số số để trình diễn. Hàm gọi lại có thể chứa bất kỳ mã JavaScript nào mà một hàm chuẩn có thể bao gồm. Bây giờ mã sẽ có thể chuyển một tham chiếu đến hàm dưới dạng tham số cho một hàm khác, sử dụng tên biến.
Tham số gọi lại
Khi một tập lệnh có một hàm được xác định là một biến, nó có thể chuyển biến đó làm tham số cho một hàm khác. Đoạn mã mẫu sau thể hiện kỹ thuật: mainFunction (10, callbackDefinition);
Mã này gọi một hàm được đặt tên, truyền một tham số số và tên của biến lưu trữ mã hàm gọi lại. Đường viền của hàm được gọi ở đây phải phù hợp với hai tham số này. Hàm nhận biến gọi lại sẽ có thể gọi hàm mà nó lưu trữ.
Thực thi chức năng
Sau khi được chuyển cho hàm chính, một hàm gọi lại có thể được thực thi. Đoạn mã mẫu sau minh họa: function mainFunction (myNum, callbackFn) {alert (myNum); callbackFn (myNum * 2); }
Để minh họa, mã này đầu tiên xuất ra một cảnh báo JavaScript sẽ khiến hộp thoại xuất hiện trong trình duyệt của người dùng. Khi mã này thực thi, hàm sẽ gọi hàm gọi lại bằng cách sử dụng tên được chỉ định làm tham số. Lời gọi hàm gọi lại bao gồm một tham số số, được mong đợi bởi hàm ban đầu được định nghĩa là một biến.
Gọi hàm
Khi một trang đã xác định một hàm, bao gồm cả một lệnh gọi lại, nó có thể thực thi mã này. Thông thường, các nhà phát triển hướng dẫn trình duyệt lắng nghe sự kiện của người dùng, thực thi các chức năng khi điều này xảy ra. Ví dụ: mã HTML sau đây gọi một hàm: Đây là phần có thể nhấp
Nếu hàm được chỉ định làm tham số chứa định nghĩa biến gọi lại và lệnh gọi đến hàm chính, điều này sẽ tạo ra hiệu ứng gọi lại, như sau: function doCallback () {var callFn = function (numParam) {alert (numParam); }; mainFunction (10, callFn); }
Khi hàm chính thực thi nội dung mã của chính nó, nó sẽ gọi hàm gọi lại.