2013-11-20 28 views
1

我想清理一些依賴數據(在這種情況下,從GPU中刪除webgl紋理)當一個Javascript對象(在這種情況下,表示要繪製的形狀)超出範圍 - 就在它是垃圾之前-集。所以我一直在尋找類似finalize()destroy()的東西,當垃圾收集之前,當Javascript對象失去最後的引用時,我可以使用它來移除webgl紋理。清理之前的對象是垃圾收集在JavaScript中 - 如何?

我已經瀏覽了web和stackoverflow,幾乎到了相信Javascript不具備此功能的地步,但我無法相信...如何在沒有finalize的情況下實現此效果等人?

+0

不,你是對的:沒有析構函數中的JavaScript。您必須手動跟蹤參考。 – Bergi

+0

如果你正在談論的那個對象超出了範圍並且失去了它的最後一個參考,紋理會不會被垃圾收集在一起? – itdoesntwork

+0

@itdoesntwork不,webgl紋理必須明確地創建和銷燬,因爲它們是webgl狀態的一部分(它位於圖形硬件上,如果我是對的,並且根本沒有參考可以返回到Javascript)。 – virtualnobi

回答

0

所以沒有辦法知道Javascript GC何時會銷燬一個對象。

(這個答案,關閉問題 - 沒有更好的方法存在嗎?)