Computer >> Máy Tính >  >> Lập trình >> Javascript

Ví dụ về tham chiếu vòng tròn trong Javascript

Tham chiếu vòng tròn xảy ra nếu hai đối tượng riêng biệt chuyển các tham chiếu cho nhau.

Trong các trình duyệt cũ hơn, các tham chiếu vòng tròn là nguyên nhân gây rò rỉ bộ nhớ. Với những cải tiến trong thuật toán thu gom rác, hiện có thể xử lý tốt các chu trình và phụ thuộc theo chu kỳ, đây không còn là vấn đề nữa.

Tuy nhiên, từ quan điểm thiết kế thuần túy, việc tham chiếu vòng tròn vẫn là một điều tồi tệ và có mùi mã. Tham chiếu vòng tròn ngụ ý rằng 2 đối tượng tham chiếu nhau được kết hợp chặt chẽ và các thay đổi đối với một đối tượng cũng có thể cần các thay đổi đối với đối tượng khác.

Giả sử bạn có 2 đối tượng là Con chó và Con người. Bạn muốn có thể tham chiếu chủ sở hữu của một con chó chỉ sử dụng đối tượng con chó và vật nuôi của một người sử dụng đối tượng người.

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

Trong hầu hết các tình huống, bạn sẽ chỉ cần truy cập một đối tượng và lấy đối tượng kia từ nó. vì vậy bạn có thể phá vỡ một trong các liên kết. Nếu không, bạn có thể sử dụng bản đồ để ánh xạ các đối tượng trong trường hợp ngược lại. Nhưng thay vì sử dụng các bản hack, tốt hơn nên để tham chiếu vòng tròn ở đó.