私がここで遭遇したこの奇妙な現象には特定の名前があるかもしれません。それが私がGoogleでそれについて何も見つけられなかった理由かもしれません。
私は自分のプロジェクトに取り組んでいましたが、検査官に奇妙な物体を見つけました。私のコードは多くのファイルで壊れていて、同時に起こっていることがたくさんあるのですぐには気づきませんでしたが、オブジェクトを開いたとき、それが無限であることに気づきました。
ここで私がしたことを再現しようとします:
var monkey = {dad: 1, son: 1, have: null};
var banana = {state: 1, eatable: 1, have: null};
monkey.have = banana;
banana.have = monkey;
console.log(monkey);
「猿」のオブジェクトを調べて、「持っている」小道具を展開すると、それが決して終わらないことがわかります。バナナには常にサルがいて、サルには常にバナナがあるので、再帰的に。
(これはおそらく、javascriptが実際の値ではなくオブジェクトへの参照を常に渡すという事実によるものだと思います。)
私はこれを他の言語で見ましたが、それは常に実行を妨げ、明示的なエラーを引き起こしました。
なぜそれはjavascriptで起こらないのですか?そして、もっと心配なことに、この種のコードは何らかの形で危険ですか?
ご協力いただきありがとうございます!