這個問題類似於這個this之一,除了我不想在chrome代碼中執行此操作。不保存對象在javascript中的引用列表
在javascript中(在瀏覽器中運行)我想跟蹤所有使用特定構造創建的對象。很簡單,我能做到這一點是這樣的:
var listObjects = [];
function Object() {
listObjects.push(this);
}
Object.prototype = {
// class members
};
這是很好的,但對象保持甚至當他們不再使用(垃圾收集讓他們因爲在listObjects仍有參考)創建內存泄漏。現在,我可以添加一個「removeObject」函數,從列表中刪除一個對象,但這需要用戶在對象超出範圍時手動調用。 現在,這可以解決,如果
- 會有弱引用
- 人能找出多少引用有一個對象
- 一個可以定義的自動調用析構函數
Unfortantly ,根據我的研究,這些都沒有存在於JavaScript中(至少不是當它應該在瀏覽器中運行時)。
任何人都可以想到另一種方式做到這一點,在JavaScript中工作,或一些JavaScript功能,我錯過了可以用來做到這一點?
如何將我的對象寫入div幫助我以任何其他方式添加到數組/列表中? – Nathan
@Nathan:這對你沒有任何幫助。它可以幫助你以完全相同的方式(來跟蹤對象),但**沒有**這些對象仍然被引用的問題,並且不適合垃圾收集。這並不理想,但那會奏效。 – haylem