オブジェクトは、一般的なコンテナ
ですか?
var obj = {};
var obj2 = {};
obj.linkedObject = obj2;
obj2.linkedObject = obj;
これは通常のことであり、メモリに悪影響はありません。
解放メモリ
あなたがオブジェクト参照の完全なテーブルを保持について尋ねている場合、あなたはそれへのライブ参照の全てがなくなるまで、オブジェクトが消えないことが正しいです。 Javascriptにはガベージコレクタがあり、テーブルや配列の参照が良好であれば、メモリにバックアップされます。テーブルにオブジェクトを与え、それをメモリから完全に削除したい場合は、テーブルからオブジェクトを削除するだけで済みます。他に何も保持する必要がないと仮定して、テーブルを削除することもできます。
getLinkedObject
関数が別のオブジェクトのオブジェクトを返すと判断された場合でも、オブジェクトがそれぞれ関連参照を保持できるようにすることができます。
function getLinkedObject(anObject) {
return anObject.linkedObject;
}
これはおそらく、相手を伴うことになります。これを行う
function linkObjects(anObject, anotherObject) {
anObject.linkedObject = anotherObject;
anotherObject.linkedObject = anObject;
}
あなたはゴミとどのJavaScriptで(ハイレベル、ダイナミックな環境、メモリ管理について少し心配することができますコレクタ)が適切である。
メモリはどんな意味で効率的ですか?メモリをGCにリリースするという意味では?もしそうなら、それはあなたがきれいにする方法に依存します。使用されるメモリの面で効率的なメモリです。この場合、オブジェクトをリンクする方法がどのように関連しているかは分かりません。目標を明確にすることはできますか?あなたの実装例では、obj2は決して使用されません - その意図ですか? –