Đóng cửa sổ JavaScript (theo tiêu chuẩn) ở đâu: đống hoặc ngăn xếp?
Có một địa điểm thứ ba để đóng cửa không?Đóng cửa Javascript trên heap hoặc ngăn xếp?
Trả lời
Cuối cùng, nó là chi tiết triển khai thời gian chạy. See Phoenix link
Để triển khai, để lưu trữ biến cục bộ sau khi bối cảnh bị phá hủy, triển khai dựa trên ngăn xếp không còn phù hợp nữa (vì nó mâu thuẫn với định nghĩa cấu trúc dựa trên ngăn xếp). Do đó trong trường hợp này, dữ liệu đóng của bối cảnh cha mẹ được lưu trong phân bổ bộ nhớ động (trong “đống”, nghĩa là việc triển khai dựa trên đống), bằng cách sử dụng bộ thu gom rác (GC) và đếm tham chiếu. Các hệ thống như vậy ít hiệu quả hơn tốc độ so với các hệ thống dựa trên ngăn xếp. Tuy nhiên, việc triển khai có thể luôn tối ưu hóa nó: ở giai đoạn phân tích cú pháp để tìm hiểu xem các biến miễn phí có được sử dụng trong hàm hay không và tùy thuộc vào quyết định này - để đặt dữ liệu trong ngăn xếp hoặc trong “đống”.
- 1. Tạo đối tượng trên ngăn xếp/heap?
- 2. C++ Phân bổ bộ nhớ trên heap và ngăn xếp?
- 3. Làm rõ Javascript Đóng cửa?
- 4. ngăn xếp và đống trong V8 (JavaScript)
- 5. Đóng cửa Javascript: Memory Leak
- 6. Đóng cửa Javascript
- 7. Javascript đóng cửa
- 8. Những gì được lưu trữ trên heap và những gì được lưu trữ trên ngăn xếp?
- 9. Địa chỉ của Ngăn xếp và Heap trong C++
- 10. Loại tham chiếu trực tiếp trên heap, loại giá trị trực tiếp trên ngăn xếp
- 11. Rò rỉ bộ nhớ JavaScript đóng cửa
- 12. Vùng chứa heap Java có bao gồm ngăn xếp luồng
- 13. Trường hợp được phân bổ tham chiếu biến, trong ngăn xếp hoặc trong heap?
- 14. Đóng cửa Chưa xác định Javascript
- 15. mới trên ngăn xếp thay vì heap (như alloca vs malloc)
- 16. Tại sao bạn muốn phân bổ bộ nhớ trên heap thay vì ngăn xếp?
- 17. Làm cách nào để tạo một mảng trong C++ trên heap thay vì ngăn xếp?
- 18. QT - Widget chính - Stack hoặc Heap?
- 19. Segfault trên ngăn xếp tràn
- 20. Ngăn xếp ngăn xếp lạ?
- 21. Ngăn máy tính Mac ngủ khi đóng cửa?
- 22. Scala đóng cửa trên wikipedia
- 23. phạm vi JavaScript và đóng cửa
- 24. (...()) vs (...)() trong việc đóng cửa javascript
- 25. Sự hiểu lầm của JavaScript đóng cửa
- 26. Cửa sổ đăng ký Javascript/tab đóng sự kiện trước cửa sổ/tab đóng
- 27. Dấu vết ngăn xếp ngoại lệ Javascript
- 28. SSL trên Ngăn xếp dịch vụ
- 29. Stack so với Heap trong Javascript? (Đã vượt quá kích thước ngăn xếp cuộc gọi tối đa)
- 30. Phân bổ bộ nhớ heap và phân vùng bộ nhớ ngăn xếp
Bạn có thể muốn xem [viết rất hay] này (http://dmitrysoshnikov.com/ecmascript/chapter-6-closures/) để tìm câu trả lời của bạn. – Phoenix