Tôi đang tìm hiểu về JS/JQuery và các chức năng và đóng ẩn danh. Tôi đã nhìn thấy các ví dụ như sau:Chi phí bộ nhớ của các chức năng ẩn danh và chức năng được đặt tên khi được sử dụng như các cuộc gọi lại Jquery
$('.button').click(function(){
/* Animations */
/* Other Stuff */
});
Nếu có nhiều nút thì không hiệu quả? Không phải là chỉ lưu trữ các bản sao tương tự của nguyên mẫu của một hàm ẩn danh trong bộ nhớ? (sửa thuật ngữ của tôi) Không phải là nó tốt hơn để làm điều này:
function handleClick(){
/* Animations */
/* Other Stuff */
}
('.button').click(handleClick);
Hoặc ngay cả điều này, nếu một tham chiếu đến nút là cần thiết:
function handleClick($obj){
/* Animations */
/* Other Stuff */
}
//multiple anon functions again, but they all reference ONE handleClick function
('.button').click((function($obj){
return function(){handleClick($obj)};
})($(this));
Tôi không nghĩ rằng phiên bản đầu tiên bạn đã viết thực sự "nhái" trình xử lý ... Tất cả phần tử sẽ chia sẻ cùng một tham chiếu! –
Vì vậy, JQuery đủ thông minh để chỉ đính kèm một trình xử lý? – Alex
Tôi không nghĩ rằng đó là vấn đề của jQuery hay không, bạn vượt qua một tham chiếu hàm duy nhất, do đó, một tham chiếu duy nhất được sử dụng. –