為什麼JavaScript中的迴圈引用不好?


迴圈引用是指兩個獨立的物件互相引用對方的情況。

在舊版瀏覽器中,迴圈引用會導致記憶體洩漏。隨著垃圾回收演算法的改進,現在可以很好地處理迴圈和迴圈依賴,這個問題不再是問題了。

然而,從純粹的設計角度來看,迴圈引用仍然是不好的,是一種程式碼壞味道。迴圈引用意味著互相引用的兩個物件耦合度很高,一個物件的更改可能也需要更改另一個物件。

避免迴圈引用

在JS中沒有一種方法可以避免迴圈引用。這取決於用例和情況,在某些情況下也可能是必要的。我們可以舉個例子來理解這一點

假設您有兩個物件,Dog和Person。您希望能夠只使用dog物件引用狗的主人,並使用person物件引用人的寵物。

let dog = new Dog();
let person = new Person();
// Creating a circular reference
dog.owner = person
person.pet = dog

在大多數情況下,您只需要訪問一個物件並從中派生另一個物件。因此,您可以斷開其中一個連結。如果不是,您可以使用對映來對映反向場景中的物件。但是,與其使用技巧,不如讓迴圈引用存在。

更新於:2019年9月17日

瀏覽量 1K+

啟動您的職業生涯

完成課程後獲得認證

開始學習
廣告
© . All rights reserved.