在打字稿中销毁循环引用实例?
Destroy an circular-reference instance in typescript?
假设我有如下代码:
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 的实例时:
1 我应该
a=null;
或
a.b.a=null;
a=null;
?
2 有什么办法可以写代码测试结果吗?说一些代码来检测内存中一些class的实例数?
如果没有对 a 或 b 的引用,垃圾收集器会将其标记为无法访问并一起清理,您无需手动执行任何操作。
您可以在 javascript here.
中找到有关垃圾收集器工作原理的更多信息
假设我有如下代码:
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 的实例时:
1 我应该
a=null;
或
a.b.a=null;
a=null;
?
2 有什么办法可以写代码测试结果吗?说一些代码来检测内存中一些class的实例数?
如果没有对 a 或 b 的引用,垃圾收集器会将其标记为无法访问并一起清理,您无需手动执行任何操作。
您可以在 javascript here.
中找到有关垃圾收集器工作原理的更多信息