Tôi hiểu việc chuyển một hàm sang một hàm khác dưới dạng gọi lại và thực thi hàm đó, nhưng tôi không hiểu cách triển khai tốt nhất để thực hiện điều đó. Tôi đang tìm một ví dụ rất cơ bản, như thế này:Hiểu rõ hơn về các chức năng gọi lại trong JavaScript
var myCallBackExample = {
myFirstFunction : function(param1, param2, callback) {
// Do something with param1 and param2.
if (arguments.length == 3) {
// Execute callback function.
// What is the "best" way to do this?
}
},
mySecondFunction : function() {
myFirstFunction(false, true, function() {
// When this anonymous function is called, execute it.
});
}
};
Trong myFirstFunction, nếu tôi làm trở callback mới(), sau đó nó hoạt động và thực hiện các chức năng ẩn danh, nhưng điều đó không có vẻ như đúng tiếp cận với tôi.
Đúng theo nghĩa nào? Thông thường các callback được sử dụng cho các trình xử lý sự kiện - đáng chú ý nhất là các cuộc gọi Ajax, không đồng bộ - về cơ bản những thứ mà bạn không biết khi nào (hoặc nếu) một resposne sẽ đến. – cletus
theo cách các đối số là mảng giống như không phải mảng, vì vậy bạn không thể làm đối số.length nhưng bạn có thể chuyển đổi nó thành một mảng bằng cách sử dụng phương thức slice ... – paul
@paul, mặc dù bạn đúng rằng 'đối số' không phải là một mảng, bạn vẫn có thể tham chiếu chiều dài của nó là 'arguments.length' - hãy thử. Thuộc tính này đề cập đến số đối số thực sự được truyền vào và không nhất thiết là số tham số trong chữ ký hàm. – hotshot309