Tôi đã hỏi a question about callbacks và đến một câu hỏi khác (xem nhận xét). Cách đóng cửa khác với cuộc gọi lại?Cách đóng cửa khác với gọi lại?
Trả lời
Kiểm tra phần giới thiệu trong phần này: http://jibbering.com/faq/faq_notes/closures.html. Nó có thể giúp bạn hiểu rõ hơn về việc bao đóng liên quan đến chức năng như thế nào.
Dưới đây là một tập hợp các ví dụ đóng cửa: http://www.javascriptkit.com/javatutors/closures2.shtml
Về cơ bản, gọi lại giống như một con trỏ hàm. Cái bit làm cho nó bị đóng, là khi hàm đó truy cập bất cứ thứ gì trong ngữ cảnh mà nó sống, giống như các biến bên ngoài nó. Khi điều đó xảy ra, hàm sẽ sử dụng các giá trị hiện tại của các biến (trái với việc sao chép chúng). Xem ví dụ 4.
Ah vâng, điều đó làm rõ nó lên Mr. Fred. Cảm ơn bạn! :) – leeand00
Có một định nghĩa tốt đẹp của việc đóng cửa here:
A "đóng cửa" là một biểu hiện (thường là một chức năng) có thể có biến miễn phí cùng với một môi trường gắn kết các biến (tức " đóng "biểu thức".
Trong thực tế, điều đó có nghĩa đó là hàm có một số biến ẩn.
Gọi lại là ý tưởng cấp cao hơn. Nói chung, nó là một hàm được truyền xung quanh với ý định được gọi sau này. Trong JavaScript, các bao đóng thường được sử dụng như callbacks.
Tôi không thấy hai liên kết này có liên quan như thế nào? Một bao đóng mang các phần của một trạng thái cục bộ vào một hàm nào đó, suy nghĩ về nó khi đi qua tham chiếu.
Gọi lại có nghĩa là thông báo cho bạn về một số thay đổi nhất định và chuyển hướng chương trình. Việc đóng cửa có thể thay đổi trạng thái cục bộ nhưng bạn sẽ không bao giờ có được thời gian xử lý để xử lý điều đó, giống như bạn sẽ gọi lại.
Có người nói với tôi cả hai có liên quan ở đây: http: // stackoverflow.com/questions/615642/does-this-fit-định nghĩa của bạn-of-a-callback/615752 # 615752 – leeand00
Gọi lại tùy thuộc vào biến ngữ cảnh hay còn gọi là biến liên kết (== trạng thái đối tượng) sẽ bị đóng. Nó sẽ là một hàm thuần túy, nếu không, khi nó chỉ mất các biến miễn phí (== tham số).
Nói cách đơn giản: gọi lại bằng cách sử dụng biến ngữ cảnh là đóng.
- 1. Đóng cửa và gọi lại
- 2. Gọi Groovy đóng cửa
- 3. Gọi lại chức năng gọi lại khi cửa sổ con đóng
- 4. Đóng cửa sổ bật lên Android với bấm lại
- 5. Đóng Cửa sổ từ Khác Trong Wpf
- 6. đóng cửa Javascript - sự khác biệt giữa các
- 7. Đối phó với sự thiếu đóng cửa trong Objective-C
- 8. đóng cửa perl và $ _
- 9. Are đóng cửa trong javascript biên dịch lại
- 10. Đóng cửa và công việc
- 11. Cách đóng cửa sổ Kendo trong nội dung cửa sổ?
- 12. Địa phương() khác với các cách tiếp cận khác để đóng cửa trong R như thế nào?
- 13. Cách đóng ứng dụng JavaFX khi đóng cửa sổ?
- 14. Gọi MiniDumpWriteDump với gọi lại
- 15. Cửa sổ chính bị đóng băng khi cửa sổ con bị đóng băng quá mức từ một quá trình khác
- 16. grails mockFor đóng cửa wierdness
- 17. Đóng cửa Clojure
- 18. Làm rõ Javascript Đóng cửa?
- 19. Giao diện gọi lại WCF - Ai đóng kênh
- 20. Đóng cửa (trong Haskell)
- 21. Vim, mở lại cửa sổ đóng cửa cuối cùng, đã được chia tách
- 22. Gọi lại FFI Haskell với Tiểu bang
- 23. Đóng cửa trong Ruby
- 24. Cách đóng cửa sổ bật lên Liferay.util.openWindow?
- 25. Watir Webdriver cách đóng cửa sổ con
- 26. Đóng cửa Javascript
- 27. Cách đóng cửa sổ Tkinter bằng cách nhấn một nút?
- 28. AKKA gửi một đóng cửa với diễn viên từ xa
- 29. Đóng cửa sổ chia nhỏ trong Vim mà không thay đổi kích thước cửa sổ khác
- 30. đóng trong vòng lặp for - gọi lại với biến vòng lặp làm tham số
Tham khảo: http://stackoverflow.com/questions/2070275/javascript-closures-and-callbacks –