Giả sử tôi có một số mã asm.js, có thể được tạo bởi emscripten. Giả sử nó có một loại cấu trúc phân cấp khá lớn, được trả về bởi hàm asm.js như là một con trỏ được một thư viện JavaScript nào đó nhặt trong một đối tượng JavaScript đẹp. Tốt cho đến nay.Trình hoàn tất cho các đối tượng JavaScript
Nhưng điều gì sẽ xảy ra nếu đối tượng đó nằm ngoài phạm vi và bị thu gom rác. Ngay bây giờ, mã asm.js không có cách nào để biết về điều đó, do đó bộ nhớ của cấu trúc sẽ vẫn được cấp phát, gây ra rò rỉ bộ nhớ.
Có cách nào để thêm trình hoàn thiện vào đối tượng JavaScript từ bên trong JavaScript không?
Trình hoàn thiện như vậy có thể được sử dụng để phân phối bộ nhớ trong asm.js, do đó tránh rò rỉ bộ nhớ. Cho đến nay tôi không thể tìm thấy một tài liệu có nghĩa là di động để đạt được điều này, nhưng có lẽ tôi đã tìm kiếm ở những nơi sai.
Tôi nghĩ bạn không nên trộn asm.js với JavaScript. –
có thể trùng lặp của [Khi nào các đối tượng JavaScript bị phá hủy?] (Http://stackoverflow.com/questions/10112670/when-are-javascript-objects-destroyed) – user
@ user3075942: Không thực sự: câu hỏi đó có liên quan đến * khi * trong khi tôi không quan tâm đến thời gian miễn là tôi sẽ được thông báo về sự kiện này. Java có bộ sưu tập rác và finalizers, và tôi đã hy vọng cho một cái gì đó tương tự trong javaScript. – MvG