为什么循环引用在javascript中不好?

如果两个单独的对象相互传递引用,则会发生循环引用。

在较旧的浏览器中,循环引用是导致内存泄漏的原因。随着垃圾收集算法的改进,该算法现在可以很好地处理循环和循环依赖性,这不再是问题。

但是,从纯粹的设计角度来看,循环引用仍然是一件不好的事情,并且有代码臭味。循环引用意味着彼此引用的2个对象紧密耦合,对一个对象的更改可能还需要对另一个对象进行更改。

避免循环引用

在JS中,没有一种方法可以避免循环引用。它取决于用例和情况,在某些情况下也可能是必需的。我们可以举一个例子来理解这一点:

假设您有2个对象,“狗”和“人”。您希望能够仅使用dog对象来引用狗的所有者,而使用person对象来引用人的宠物。

let dog = new Dog();

let person = new Person();

//创建一个循环引用

dog.owner = person

person.pet = dog

在大多数情况下,您只需要访问一个对象并从该对象派生另一个对象。因此您可以断开其中一个链接。如果不是,则可以使用映射在相反的情况下映射对象。但是,与其使用hack,不如使用循环引用。

以上是 为什么循环引用在javascript中不好? 的全部内容, 来源链接: utcz.com/z/316617.html

回到顶部