0
說我有這樣的代碼如下:銷燬打字稿中的循環引用實例?
class A
{
b: B;
constructor()
{
this.b = new B(this);
}
}
class B
{
a: A;
constructor(a: A)
{
this.a = a;
}
}
let a= new A()
當我要摧毀的實例:
我應該只是
a=null;
或
a.b.a=null;
a=null;
?
有什麼辦法編寫代碼,測試結果嗎?說一些代碼來檢測內存中某些類的實例號?
如果沒有對a或b的引用,它將被垃圾收集器標記爲不可訪問並一起清理,您不必做任何事情。 – toskv
@toskv所以如果只有一個引用,當我使用'a = null'。即使a和b是循環引用,b也是gc自動的? – AlexWei
是的,只要沒有人提及他們。 – toskv