gpt4 book ai didi

javascript - 了解垃圾回收引用计数方法中的交叉引用

转载 作者:行者123 更新时间:2023-12-03 18:25:07 25 4
gpt4 key购买 nike

在阅读一本书时,我了解到 JavaScript 的实现倾向于使用两种垃圾回收方法中的一种。要么是标记清除,要么是引用计数。我理解引用计数的概念。统计一个值存在多少个引用。当一个变量被赋值时,该变量的引用计数增加 1,当变量被其他值覆盖时,'THIS' 值的引用计数减少 1。该过程继续,当引用数达到 0 时,值被认为可以安全删除。

然后有一节解释了垃圾回收中引用计数方法的交叉引用问题。它说,只要对象 A 的属性被分配给对象 B 的引用,反之亦然,那么交叉引用问题就会出现,因为计数永远不会达到零。书上举的例子是这样的

var A = new Object();
var B = new Object();
A.prop = B;
B.prop = A;

我完全错过了这一点。我的意思是,上面的代码是如何导致交叉引用问题的?为什么计数永远不会达到零。

注意 我写下了我所理解的关于引用计数的所有内容。如果我在某个地方错了,请告诉我。谢谢。

最佳答案

这是一个例子:

class Person{
string name;
Person lover;
}

A = new Person("A");
B = new Person("B");
A.lover = B;
B.lover = A;

A = NULL;
B = NULL;

explain

因此,计数永远不会达到零。

关于javascript - 了解垃圾回收引用计数方法中的交叉引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38417586/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com