在typescript中销毁循环引用实例?

问题描述 投票:1回答:1

说我有以下代码:

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;

?

2有没有办法编写代码来测试结果?说一些代码来检测内存中某些类的实例号?

typescript memory-leaks circular-reference
1个回答
1
投票

如果没有对a或b的引用,它将被垃圾收集器标记为无法访问并一起清理,您无需手动执行任何操作。

您可以在javascript here中找到有关垃圾收集器如何工作的更多信息。

© www.soinside.com 2019 - 2024. All rights reserved.