この質問はこれと似ていますが、クロムコードでやりたくないという点が異なります。
javascript (ブラウザで実行) では、特定の構造で作成されたすべてのオブジェクトを追跡したいと考えています。簡単に、私はこのようにすることができます:
var listObjects = [];
function Object() {
listObjects.push(this);
}
Object.prototype = {
// class members
};
これは問題ありませんが、オブジェクトが使用されなくなっても保持されます (listObjects にはまだ参照があるため、ガベージ コレクターはそれらを保持します) メモリ リークを作成します。ここで、リストからオブジェクトを削除する「removeObject」関数を追加できますが、オブジェクトが範囲外になるたびにユーザーが手動で呼び出す必要があります。これは、次の場合に解決できます
- 弱い参照があるでしょう
- 1 つのオブジェクトへの参照がいくつあるかを調べることができます。
- 自動的に呼び出されるデストラクタを定義できます
残念なことに、私の調査によると、これらのいずれも JavaScript には存在しません (少なくとも、ブラウザーで実行することになっている場合はそうではありません)。
これを行うためにJavaScriptで機能する別の方法、またはこれを行うために使用できる見逃したJavaScript機能を誰かが考えられますか?