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

Làm thế nào để tránh tham chiếu vòng tròn trong OOP 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.

Tránh tham chiếu vòng tròn

Không có một cách nào để tránh tham chiếu vòng tròn trong JS. Nó phụ thuộc vào trường hợp sử dụng và tình huống và cũng có thể cần thiết trong một số trường hợp. Chúng ta có thể lấy một ví dụ để hiểu điều này:

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 ở đó.