今日遭遇した筆記試験の問題について、いくつか答えてください。
A.js と b.js は相互に要求し合っていますが、無(wú)限ループに陥りますか?結(jié)果はエクスポートできますか?この問題を回避するにはどうすればよいでしょうか?
これは JavaScript モジュールの循環(huán)読み込みを調(diào)べるためのものです
この問題を回避するには、es6 のモジュール メカニズムを使用できます。ES6 の「循環(huán)読み込み」の処理は CommonJS とは根本的に異なります。 ES6 は「ループ読み込み」が発生するかどうかをまったく気にせず、ロードされたモジュールへの參照を生成するだけです。開発者は、値が実際に取得されるときにその値が取得できることを確認(rèn)する必要があります。
文字通りに理解している場(chǎng)合は、
のみを使用してください リーリーすると、この問題は CommonJS における循環(huán)參照の問題として理解できます。 CommonJS のアプローチは、モジュールが「ループロード」されると、実行された部分のみが出力され、未実行の部分は出力されないというものです。
2 つのモジュール間の循環(huán)參照を概念的に理解すると、es6 のモジュール?yún)⒄栅忾v係します。
リーリーES6 は「ループ読み込み」が発生するかどうかをまったく気にせず、ロードされたモジュールへの參照を生成するだけです。開発者は、値が実際に取得されるときにその値が取得できることを確認(rèn)する必要があります。
単に CommonJs を使用するか、単に esm (es6 モジュール) を使用するだけでは、無(wú)限ループは発生しません。しかし、この 2 つを混合すると、それが起こる可能性があります。
Ruan Yifeng のブログがとてもよく書かれているので、お?jiǎng)幛幛筏蓼埂?
http://www.ruanyifeng.com/blo...