jQuery: Hàm hồi quy, Hàm, và ‘this’
Hàm hồi quy là một hàm được truyền như là một thông số cho một hàm khác (hàm gọi/hàm bao ngoài) và sẽ được thực thi sau khi hàm gọi hoàn tất. Điều đáng lưu ý về hàm hồi quy là tất cả những hàm xuất hiện sau “hàm gọi” có thể thực thi trước hàm hồi quy.
Một điều quan trọng khác cần lưu ý là làm thế nào dùng đúng hàm hồi quy. Đây là điều mà tôi thường hay quên cú pháp câu lệnh.
Dùng hàm hồi quy không tham số:
Đối với một hàm hồi quy không thông số, bạn có thể gọi theo cách sau:
$.get('myhtmlpage.html', myCallBack);
Lưu ý thông số thứ hai chỉ đơn giản là tên hàm (không truyền như một giá trị chuỗi ký tự và không có dấu ngoặc đơn). Các hàm trong Javascript được xem là những ‘khách hàng hạng sang’ và vì vậy có thể truyền như một biến số và sẽ được thực thi sau đó.
Dùng hàm hồi quy có thông số
Bạn sẽ thắc mắc “Bạn sẽ phải gọi hàm hồi quy như thế nào nếu có thông số?”.
Sai
Cách dùng sai (không hoạt động)
$.get('myhtmlpage.html', myCallBack(param1, param2));
Cách này không hoạt động vì bạn gọi myCallBack(param1, param2) sau đó lại truyền giá trị trả về như là một thông số mới cho hàm $.get().
Đúng
Cách dùng đúng
$.get('myhtmlpage.html', function(){
myCallBack(param1, param2);
});
Lý do, bằng cách truyền một hàm vô danh (đoạn mã với…
function() {
/* hàm cần thực thi */
};
…sẽ tự động gọi hàm cần thực thi với những thông số cần thiết), bạn đã hoàn tất việc gọi hàm hồi quy.
Cách dùng này đúng vì bạn truyền hàm vô danh như thông số thứ hai cho hàm $.get() mà không phải thực thi hàm đó trước khi truyền.
Popularity: 12% [?]
No comments yet.