Javascript
 Computer >> コンピューター >  >> プログラミング >> Javascript

JavaScriptで循環参照が悪いのはなぜですか?


循環参照は、2つの別々のオブジェクトが相互に参照を渡す場合に発生します。

古いブラウザでは、循環参照がメモリリークの原因でした。ガベージコレクションアルゴリズムが改善され、サイクルと循環依存関係を適切に処理できるようになったため、これは問題ではなくなりました。

ただし、純粋な設計の観点からは、循環参照は依然として悪いことであり、コードの臭いがあります。循環参照は、相互に参照している2つのオブジェクトが緊密に結合されており、一方のオブジェクトを変更すると、もう一方のオブジェクトも変更する必要がある場合があることを意味します。

循環参照の回避

JSで循環参照を回避する方法は1つではありません。ユースケースや状況によって異なり、場合によっては必要になることもあります。これを理解するための例をとることができます:

DogとPersonの2つのオブジェクトがあるとします。犬のオブジェクトを使用するだけで犬の飼い主を参照し、人物のオブジェクトを使用する人のペットを参照できるようにする必要があります。

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

ほとんどのシナリオでは、1つのオブジェクトにのみアクセスし、そこからもう1つのオブジェクトを派生させる必要があります。そのため、リンクの1つを壊すことができます。そうでない場合は、マップを使用して、逆のシナリオでオブジェクトをマップできます。ただし、ハックを使用する代わりに、円形の参照をそこに配置することをお勧めします。


  1. Javascriptの循環としての単一リンクリスト

    単一リンクリストでは、最後のノードの次のポインタが最初のノードを指します。

  2. Excel の循環参照とは?

    Excel で 循環参照 が発生する 数式セルが直接的または間接的にそれ自体を参照することを意味します。ワークシートに循環参照がある場合、Excel は自動的に計算できません。循環参照をそのままにしておくと、Excel は循環参照に含まれる各セルを前の繰り返しの値を使用して計算します。これにより、スプレッドシートが大幅に遅くなる無限ループが作成されます。 ここで、循環参照とは何かについて詳しく説明します 循環参照の種類 数式を挿入するセルが参照で言及されている場合、それは循環参照と呼ばれます。循環参照には主に直接と間接の 2 種類があります。数式の参照に数式を入力しているセルを挿入すると